《计算机网络概论》学习笔记整理之概述
/ / 点击 / 阅读耗时 15 分钟这个主要是一个网络课程的笔记,包含概述部分(第一周)的笔记整理,涉及网络主要资源,网络结构,网络协议的介绍。
概述
1. 设计网络
下面这两个因素会影响演算法(不知道是啥)和架构的设计:
- bandwidth: 频宽,表示传送数据有多快
- delay: 从一端送到另一端要多久能完成传输,表示传送数据要多久
2. TCP协议(Transmission Control Protocol)
位于第4层,提供可靠的传输(如果封包丢失,会要求对方再重新送一次)。
对于一个http请求,大概需要17条信息:
- 6条用来寻找IP地址
- 3条用来建立TCP链接
- 4条用于http请求和acknowledgement
- 4条用于关闭TCP连接
3. 基本概念
- packet: 网络传递信息的基本单位
- message: 原始的资料,比较长
- switch: 可以是第二、三、四层的设备,一般会接成有回路(回路可以增加网络的可靠性,但也会导致错误)的交换机网络
- router/gateway: 连接局域网的设备,通常broadcast会被router挡掉
- spanning tree: 将交换机及工作站连起来,变成一个树状结构(任意两个node之间只有唯一路径),spanning tree本身也提供了routing的路径
- address: 网卡的位置使用MAC address,主机的位置使用IP address
- LAN: 表示一个局域网络
- WAN: 表示世界范围的网络
4. 关于router
- router会把连接的网络的状态告知其他router,彼此之间相互交换信息,就能知道整个网络当前的状态(这个状态是随时变动的)
- 每个封包走哪条路线是根据上面这个动态的状态决定的
- router的一个很重的功能就是分包,讲一个大封包切成小封包(每一个封包都有一个完整的地址),切分的原因是每一种网络都有一个封包最大值,比如:Ethernet最大值是1518bit,WIFI(IEEE 802.11)是2312bit
- 任何一个封包在网络中绕(靠router绕),router每处理一个封包,上面记录的一个数字就会被减一,减到零的时候就把这个封包丢掉,这是丢包的一种可能性
- 封包从LAN网送到Router的速度快,从Router从到WAN网的速度慢,导致封包在路由器处堆积发生丢包,这是丢包的另一种可能性
5. internet本身会尽力将封包送至目的地,但是不能保证一定送到,因为会发生丢包,所以其本身是不可靠的
6. 网络资源的有效共享
网络资源包括:
- link:因为link频宽有限,就涉及到link共享的问题
- node
- switch
- router
link共享技术: 多路复用(multiplexing)
- FDM(Frequency Division Multiplexing):每一个频宽都只有原来的1/4,但任何时候都可以用
- TDM(synchronous Time Division multiplexing): 使用整个频宽,但是时间有间隔
- statical multiplexing
- FIFO(queue)
- Round-Robin(scheduler/queue)
- priority
7. logial chennal
指连接关系的存在,真正指具体哪一条链路都没有关系。TCP建立连线指的就是logical channel。
8. 网络的不可靠性
- bit丢失/burst errors(大量bit丢失)
- router阻塞导致的丢包
- link/node的宕机
- 信息延迟
- 信息乱序
- 第三方的窜改(因为router是store-and-forward,给了第三方窜改的机会)
9. 网络协议
- 水平维度:比如电脑对电脑,电脑对设备,设备对设备之间的协议
- 竖向维度:比如application layer的服务建立在presentation layer服务上,后者又建立在session layer基础上,后者又建立在transport layer上,后者又建立在network layer之上,后者又建立在data-link layer上,最底层是physical layer,每一层都需要定义协议进行服务间的通信
10. 协议结构
11. OSI Architecture
OSI: open system interconnection
- Transport层(蓝色):提供可靠/不可靠传输
- Network层(绿色):解决如何从一端送到另一端的选路线的问题
- DataLink层(红色):解决如何往前送一步的问题
- Physical层(黄色):如何通过实体介质传送
12. 主机和路由器是如何相连的(以经过两个交换机为例)
- switch:layer2设备,作用是把收进来的封包转出去,依据这一层header中的网卡位置
- router:layer3设备,作用是根据目标ip选择路径,依据这一层header中的ip信息
- 从data-link层(红色)出来的封包包含送封包的网卡和收封包的网卡的位置(48位),相当于网卡对网卡
- 从network层(绿色)出来的封包包含两端主机的ip(ipv4 32位),是主机对主机的关系
- 当主机和switch使用ethernet相连时,data-link层使用ethernet协议;当主机和AP使用无线相连时,data-link层使用wireless协议
13. physical layer
解决如何将原始材料在介质上传输的问题,基本传输单位是bit
材质
- coaxial cable:同轴电缆
- twisted pair:双绞线
- optical fiber:光纤
- air space
coding:coding是physical layer最重要的功能,是将二进制数据以特定的形式表达,比如高低电位、光的明暗,同时要把发送方的clock送给接收方,使得双方使用相同的传输速度处理数据
14. data link layer
这一层关心如何将frame传给直接相连的主机或设备,注意是直接相连的,基本传输单位是frame
- CSMA/CD: IEEE802.3 Ethernet使用这个MAC(media access protocol)协议
- CSMA/CA: IEEE802.11 wireless使用这个协议
15. network layer
这一层关心如何将封包(packet)透过internet送到目的地主机,基本传输单位是packet
- 处理routing:router之间会彼此通过routing protocol(RIP, OSPF, BGP)交换线路状况的情报,通过协议计算出来的路径结果存入routing table中,内容会动态更新
- 一个封包进入router后,首先拿到destination IP,然后查routing tabel,找寻路径
16. transport layer
这一层提供不同主机process之间资料(message)的传送,基本传输单位是message,是host对host的关系,不同主机意味着跨网络
17. session layer
provides a name space that is used to tie together the potentially different transport streams that are part of a single application
18. presentaion layer
concerned about the format of data exchanged between peers
19. application layer
standardize common type of exchanges
20. OSI结构的特点
可以跨层
协议结构构成沙漏型状
21. 网络性能
指标
带宽:指1秒可以传送的bit数
1Mbps = 1 x 10^6 bits/second,也就是1 x 10^-6 second(1 micro second,这个单位表明1个bit在时间轴上有多宽)传送1bit
抓数据是在1个bit宽的中间抓取,速度越快,1bit的宽度越窄,越不好抓,所以高速网络不好实现
latency(delay) = propagation time + transmission time + queuing time
propagation time = 距离/速度(也就是信号实际传送的时间)
transmission time = 信息size/bandwidth(也就是信息发送需要的时间)
queuing time = 信息排队等待发送的时间
基于上面两个指标,就有如下两种情况
短资料很快就送完,但需要长时间才能传送到对方,也就是资料已经发送完毕,但是前导资料还未到对方,这个时候propagation time远大于transmission time
长资料很慢才能发送完,未发送完之前,前导资料已经送达对方,这个时候transmission time远大于propagation time
bandwidth x delay:感觉这是衡量网络效能的又一个指标,本质也是propagation time和transmission time的较量
- pipe:一对process(TCP级)之间的实际连接可以视为一个pipe,同一message的不同部分pipe可能不同
- delay:对应上面的propagation time和pipe的长度有关,而bandwidth决定上面transmission time
- bandwidth x delay:表明在pipe中可以存的最大量的资料
- 对于大资料的传输,bandwidth就很重要
- 对于小数据比如http,delay就很重要,和上面的讨论结果一致
22. throughput
一方送资料,在等待(送一波后会停止)对方回应前,送出去的资料量塞满(delay x bandwidth)情况下,throughput越好。
- RTT(round-trip time):送/回时间
- Transmission time: TransferSize / Bandwidth
- Transfer time: Transmission time + RTT
- Throughput: TransferSize / Transfer time