计算机网络概述

IP协议

IP协议是不可靠、无链接的数据报传输服务

不可靠:它不能保证ip数据报能成功的到达目的地,如某个路由器暂时用完了缓冲区,ip有一个简单的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层提供

无连接:ip并不维护任何关于后续数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接受。如果一信源向相同的信宿发送两个连续的数据报,每个数据报都是独立地进行路由选择,可能选择不同的路线,因此B可能在A到达之前先到达。

IP首部

4位版本号

4位首部长度:最大就是15个长度,长度的单位是字,每个字就是4个字节,即32位,所以最大不超过15*4=60字节

8位服务类型(TOS):最后1位是没有用的。前面3位是ip优先级,然后4位,第一位被置为1,表示Ip需要的最小的延时,第二位置1,,标志这个包需要最大吞吐量,第三位被置1,表示需要最高的可靠性,第四位被置1,表示需要最小的费用。

16位总长度(字节数):2^16 = 65536,0~65535,这是65536个数字,一个整体的数据包,最大不可能超过65535字节。

16位标识:每一个ip包都给它一个id。id的作用:ip包可能被分片,同一个包的分片的id都是相同的。

3个标志位:只用了两位,一位是df位,df位表示是否能分片,如果包的长度大于MTU,正常会被分片,但是如果df = 1,则会被直接丢弃,并发送一个ICMP报文,报告给PC丢包的原因。第二位是mf 用来标识是否是最后一个分片,如果是1表示不是最后一个分片,如果为0表示是最后一个分片

13位片偏移:一个包分片之后,在接受的时候,利用片偏移将其重新组合。

8位生存时间(TTL):过一跳路由器就-1,防止包在网络中形成环路。如果TTL字段为0或1,就会发送一个ICMP超时报文给发送端

8位协议位:下一个是什么协议,比如下一个协议是TCP,则在第6的位置标记为1

16为首部校验和

32位源IP

32位目IP

选项:最长为40字节

ICMP

ICMP通常被认为是IP层的一个组成部分,它传递差错保温以及其他需要注意的信息。ICMP报文通常被IP层或更高层协议使用,一些ICMP报文把差错报文返回给用户进程。

类型 + 代码:80:请求回显,00:回显应答

不产生ICMP差错报文:

1. ICMP差错报文(ICMP查询报文可能会产生ICMP差错报文)

2. 目的地址是广播或者多播地址的IP数据报

3. 作为链路层广播的数据报

4. 不是IP分片的第一片(因为只有第一片才有四层的端口号信息)

5. 源地址不是单个主机的数据报。这就是说,源地址不能是零地址、环回地址、广播地址和组播地址。


为什么用Traceroute,而不用IP路径记录选项

1. 并不是所有的路由器都支持记录路由选项,因此该选项在某些路径上是不能使用的。

2. 记录路由一般是单向选项。发送段设置了该选项,那么接收端不得不从收到的IP首部中提取出所有的信息,然后全部返回给发送端。

3. IP首部中留给选项中的空间有限,不能存放当前大多数的路径。

TCP链接

TCP面向链接意味着两个使用TCP的应用在彼此交换数据之前必须先建立一个TCP链接。在TCP链接中,仅有两方进行彼此通信。

TCP可靠性:

1. 应用数据被分割成TCP认为最适合发送的数据块

2. 当TCP发送一个段后,它启动一个定时器,等待目的端确认收到这个报文段。如果 不能及时收到一个确认,将重新发送这个报文。

3. 当TCP收到发送TCP链接另一端的数据,它将发送一个确认。这个确认不是立即发送,通常将推迟几分之一秒。

4. TCP将保持它首部和数据的校验和。

5. 既然TCP报文段作为IP数据报来传输,而IP数据报的到达可能会失序,因此TCP报文段的到达也可能会失序。如果必要,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

6. TCP提供流量控制。TCP链接的每一方都有固定大小的缓冲空间。TCP的接收端只允许另一端发送接收端缓冲区所能接纳的数据。这将防止较快主句致使较慢主机的缓冲区溢出。

UDP的主要特点

1. UDP是无链接的,即发送数据之前不需要建立链接。

2. UDP使用尽最大努力交付,即不保证可靠交付,同时不适用拥塞控制

3. UDP是面向报文的(TCP是面向字节流的)

4.  UDP支持一对一,一对多,多对以和多对多的交互通信。(TCP是一对一,并且提供全双工通信)

5. UDP的首部开销小,只有8个字节(TCP至少是24个字节)

TCP如何实现可靠性:

1. 以字节为单位的滑动窗口技术

A为发送端,B为接收端,A维护一个发送窗口和一个发送缓存,B维护一个接受窗口和一个接受缓存。处于发送窗口的数据可以发送数据,接受到接受方的确认之后,确认之前的数据可以从发送缓冲区中删除,并且发送窗口移动到确认的哪个序号上。(如果丢失了,接收端会选择性确认,让发送端只发送一段数据)

2. 流量控制

主要是通过接收端告诉发送端,接收窗口多大来实现的。接收端可以根据当前自身的处理情况,来动态的调整接收窗口大小,并反馈给发送端,并且发送端通过此来动态的调整发送窗口的大小。

3. TCP拥塞控制(协调使用这个网络资源的所有主机)

出现拥塞的条件:对资源需求的总和 > 可用资源

拥塞控制的四种算法:

假定:1. 数据单方向传送的,而另一个方向只传送确认。2. 接收方总是有足够大的缓存空间,因为发送窗口大小取决于拥塞程度。

慢开始:是一个指数增长的过程,起始的默认值是一个报文段。经过一个传输轮次之后,发送窗口大小就由1变为2……一直增大到慢开始门限

拥塞避免:加法增大,线性增加的过程。从慢开始门限开始,每次传输轮次只在上一次传输轮次上增加一个报文段。如果发送方在发送的时候,检测到了网络拥塞。则又从慢开始开始。

慢开始:这次慢开始的门限值为刚刚拥塞避免值的1/2。然后再进行拥塞避免。


快重传:慢开始到拥塞避免,如果收到三个重复确认就执行重传算法。

快恢复:此时不用降到慢开始的起始值1,而是直接降到拥塞避免最大值的1/2。然后进行线性增长。

流量控制和TCP拥塞控制的区别:

流量控制是端到端的,拥塞控制。拥塞控制是多对一的,比如接受主机察觉到了网络拥塞,但是它并不能明确到底是哪个发送速率过快,或者发送数据过多所造成的。

中继器和集线器

中继器(再生数字信号)

诞生原因是由于存在损耗,在线路上传输的信号功率会逐渐衰减,衰减到一定程度到一定程度时将造成信号失真,因此会导致接受错误。中继器的功能就是对信号进行再生和还原,对衰减的信号进行放大,保持与源数据相同,以增加信号的传输距离,延长网络的长度。

集线器:多口的中继器(链接到集线器的主机平分带宽)

对信号进行放大转发,对衰减的信号进行放大,接着转发到其他所有处于工作状态的端口上,以增加信号传输的距离,延长网络的长度。不具备信号的定向传送能力,是一种共享设备(广播)。

网桥和交换机(都是在数据链路层对以太网进行优化)

网桥

网桥工作在数据链路层,它根据MAC帧的目的地址对收到的帧进行转发。

网桥具有过滤帧的功能。当网桥收到一个帧时,并不是向所有的接口转发帧,而是先检查帧的目的MAC地址,然后再确定将该帧转发到哪一个接口。

交换机

网桥两边连的是两个冲突域,交换机是各个主机直接链接到交换机上,它能隔离冲突域,但是不能隔离广播。

路由器:

链接因特网中各个局域网、广域网的设备,隔离冲突域和广播域。

你可能感兴趣的:(计算机网络概述)