网络总结

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gc0823/article/details/48489713

TCP/IP的分层:

1:链路层,又叫数据链路层或网络接口层,通常包括操作系统的设备驱动程序和计算机对应的网络接口卡,包括的协议有:以太网协议,令牌环协议,,ARP,RARP,在链路层上对网络进行互联使用网桥,网桥一般转发广播分组;

2:网络层,又叫互联网层,主要是网络上的活动,包括的协议有:IP,ICMP,IGMP,网络层提供的是一种不可靠的服务,须运输层提供可靠服务,在网络层上对网络进行互联使用路由器,路由器一般不转发广播分组,;

3:运输层,主要为两台主机的应用程序提供端对端的通信,包括的协议有:TCP,UDP,运输层的TCP为了提供可靠地服务,才用超时重传、发送和接受端到端的确认分组机制等;

4:应用层,主要处理应用程序的细节问题,包括的协议有:Telnet,FTP,HTTP,SMTP,SNMP等,应用层是用户进程完成的


每传递一层,要进行封装,也就是说对每层收到的数据添加首部信息:运输层为段或者报文段,网络层为数据报,链路层为帧

由于TCP、UDP、ICMP和IGMP都要向IP传送数据,所以在网络层添加的IP数据报中会加入标识,标识为长度为8bit的数值,称作协议域,1为ICMP,2为IGMP,6为TCP,17为UDP。同样,运输层添加的报文段中有16bit的端口号来辨认不同的应用程序,链路层的帧首部有16bit的帧类型域



链路层:有SLIP,压缩SLIP,PPP,以太网地址48位

SLIP(串行线路IP,Serial LineIP):它是一种在串行线路上对IP数据报进行封装的简单形式。一般以END特殊字符结束,IP报文某个字符为End的话传输2个字节取代,IP报文的某个字符为ESC字符的话也会传输2个字节取代,若含有一个END字符和一个ESC字符的IP报文,那么串行线路上传输的总字节数是原IP报文长度再加4个字节。

SLIP的缺点:

1:必须知道对方的IP地址;

2:如果一条串行先用用SLIP,那么就不能同时使用其他协议;

3:SLIP数据帧没有CRC检验和字段,发生错误时必须用上层协议发现,比较麻烦。


PPP(点对点协议): PPP既支持数据为 8位和无奇偶检验的异步模式,还支持面向比特的同步链接;也包括了LCP(链路控制协议)和NCP(网络控制协议)。

PPP的优点:

1:每一帧都有循环冗余检验;

2:与压缩SLIP类似,对TCP和IP报文首部进行压缩;

3:链路控制协议LCP可以对多个数据链路选项进行设置,为这些优点付出的代价是在每一帧的首部增加 3个字节;

4:通信双方可以进行I P地址的动态协商,使用LCP时。


MTU(最大传输单元):如果IP层有一个数据报要传,而且数据的长度比链路层的 MTU还大,那么 IP层就需要进行分片。

常见的MTU:以太网1500,IEEE802.3/802.2为1492,X.25为576,点对点为296




网络层:IP协议

IP(32位):不可靠的协议,但是提供最好的传输服务,IP首部长20个字节

ICMP(Internet控制报文协议):ping时使用,ICMP报文通常被IP层或更高层协议(TCP或UDP)使用。ICMP的16位检验和是必需的。

IGMP(Internet组管理协议):报文通过IP数据报进行传输。不像我们已经见到的其他协议, IGMP有固定的报文长度,没有可选数据,有32位的D类IP地址。主要是支持主机和路由器进行多播。类型为1是路由器发出的报文,类型为2是主机发出的报文。


选路原理:

(1)搜索匹配的主机地址;

(2)搜索匹配的网络地址;

(3)搜索默认表项。

IP层进行的选路是一种选路机制,而路由守护程序是提供选路策略。用netstat可以查看静态路由情况。ICMP重定向差错会更新路由表。

动态选路协议:

内部网关协议(IGP):RIP,OSPF,HELLO(不用)

外部网关协议(EGP):边界网关协议(BGP)意在取代EGP


RIP:

RIP报文包含在UDP数据报中,RIP常用的UDP端口号为520


OSPF:

OSPF是一个链路状态协议,它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去。每个路由器接收这些链路状态信息,并建立起完整的路由表。

OSPF直接使用IP。也就是说,它并不使用UDP或TCP。


BGP:

BGP与RIP和OSPF的不同之处在于BGP使用TCP作为其传输层协议,BGP是一个距离向量协议,列举了到每个目的地址的路由,而不是说跳数。BGP通过定期发送keepalive报文给其邻站来检测TCP连接对端的链路或主机失败。


运输层:

TCP提供的服务:1    是一个安全的,面向连接的,可靠地运输层协议

                                2    可以进行流量控制

                                3    IP层有可能使数据报失序,TCP将对收到的数据进行重新排序,将收到的数据以正确的顺序交给应用层。

                                4    提供检验和,保证数据正确

                                5    对于数据报重复的情况,会自动丢弃

                                6    当TCP发出一个段后,它启动一个定时器,等待目的端确认收到这个报文段。

MSS:最大报文段长度,有536字节,1024字节,以太网MSS为1460,IEEE802.3为1452字节

半关闭状态:发送方给接收方发送FIN信号之后,并且给发送方ACK确认,之后还能继续给发送方发送数据,知道接收方发FIN才算关闭。

半打开状态:如果一方已经关闭或异常终止连接而另一方却还不知道,我们将这样的 TCP连接称为半打开的。

2MSL:MSL为最大生存时间即被任何报文段被丢弃前在网络内的最长时间,2MSL是主动发送FIN方后收到被关闭方的ACK之后,被关闭方再发送FIN使得主动关闭方变成TIME_WAIT状态,该状态就是2MSL,这是为了防止最后给ACK信号丢失。

平静时间:TCP在重启动后的MSL秒内不能建立任何连接。这就称为平静时间(quiet time)。

发送复位报文段(RST)的情况:1            给不存在的端口进行连接请求,UDP是会发送端口不可达的差错报文

                                                            2            异常终止一个连接

                                                            3            检测到半打开状态

TCP也会存在客户端跟服务器同时打开,同时关闭的状态,同时关闭的时候没有FIN_WAIT_2状态,直接就是TIME_WAIT状态。


Nagle算法:在发送一个分组之前,将大量的TCP数据绑定在一起发送。

Nagle算法使用不当引起的性能问题:1、小的HTTP报文可能无法填满一个分组,可以回等待永远不会到来的额外数据而产生时延。

                                                          2、Nagle算法或阻止数据的发送,直到有确认分组抵达为止。


TCP的超时与重传:主要是用定时器衡量

定时器类型:

1    重传定时器使用于当希望收到另一端的确认。

2    坚持(persist)定时器使窗口大小信息保持不断流动。

3    保活(keepalive)定时器可检测到一个空闲连接的另一端何时崩溃或重启,用于半打开连接状态。

4    2MSL定时器测量一个连接处于TIME_WAIT状态的时间。



熟记的网络知识:

以太网:48位

IP(4):32位

IP(4)普通首部长度:20个字节,首部最长为60个字节。

TCP普通首部长度:20个字节

UDP首部长度:8个字节

最大UDP数据报长度:65535字节,由于应用程序可能会受到其程序接口的限制和TCP / IP的内核实现会导致一般不可能达到UDP数据报的最大长度

ICMP首部长度:8个字节

以太网首部:14个字节

以太网尾部:4个字节

RIP首部:4个字节

DNS首部:12个字节

以太网数据帧范围:64~1518字节=6(目的地址)+6(原地址)+2(类型)+48~1500(IP数据报)+4(CRC检验和)

IP数据报范围:48~1500字节

ARP:42字节 =14以太网首部+28arp数据

无盘系统通过MAC地址获取IP:使用RARP协议

无盘系统获取自己的子网掩码:使用BOOTP协议,可以用于ICMP地址掩码请求,DHCP使用BOOTP协议

ICMP报文:查询报文和差错报文

IP首部选项字段中最多只能存放9个IP地址,首部选项字段为40字节。 IP层本身没有超时重传的机制。

IP数据报中初始TTL占8位,1个字节,TTL若为0或者1时,过路由器减1,则会被路由器丢弃,并发送ICMP超时的数据报。

IP数据分片:IP把MTU与数据报长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发生在中间路由器上,当IP数据报被分片后,每一片都成为一个分组,具有自己的 IP首部,任何运输层首部只出现在第1片数据中。在分片时,除最后一片外,其他每一片中的数据部分(除 IP首部外的其余部分)必须是 8字节的整数倍。

UDP发生ICMP不可达差错的一种情况是,当路由器收到一份需要分片的数据报,而在 IP首部又设置了不分片(DF)的标志比特。

              另外一种情况是,如果收到一份UDP数据报而目的端口与某个正在使用的进程不相符,那么UDP返回1个ICMP不可达报文。
UDP也会有ICMP源站抑制差错:当一个系统(路由器或主机)接收数据报的速度比其处理速度快时,可能产生这个差错。但是一般UDP会忽略,而TCP不会忽略。




猜你喜欢

转载自blog.csdn.net/gc0823/article/details/48489713
今日推荐