计算机网络知识 发布日期:2019-01-29

 计算机网络在IT行业的重要性

IT即互联网技术,从事的工作和网络有很大的关系,前端要负责和后台(服务器)进行交互,其必然得经过网络,所以懂点网络知识有很大的帮助。
网络模型数据处理过程
计算机网络知识
计算机网络知识
传输层协议的作用
传输层协议的分类
TCP
TCP的功能
为了保证TCP是可靠的、面向连接的协议,具备以下功能:
TCP首部
计算机网络知识
计算机网络知识
源端口号和目的端口号:用来存放发送端和接收端加上IP协议首部的源端IP及终端IP,确认一个唯一的TCP连接。
计算机网络知识
计算机网络知识
32位序号:TCP用序列号对数据包进行标记,以便在到达目的地后重新重装,假设当前的序列号为 s,发送数据长度为l,则下次发送数据时的序列号为s+l。在建立连接时通常由计算机生成一个随机数作为序列号的初始值。
计算机网络知识
计算机网络知识
32位确认序号:ACK为1时有效,上次成功收到的数据字节序号+1(如接收到的为1024--2048,则返回2049),也是下一次发送端要发送数据的序列号。4位首部长度:TCP 首部的长度,单位为 4 字节。如果没有可选字段,那么这里的值就是 5。表示TCP首部的长度为 20 字节。
计算机网络知识
计算机网络知识
6个保留位:
计算机网络知识
计算机网络知识
16位窗口大小:TCP流量控制,字节数,说明本地可接收数据段的数目,这个值的大小是可变的。当网络通畅时将这个窗口值变大加快传输速度,当网络不稳定时减少这个值可以保证网络数据的可靠传输。它是来在TCP传输中进行流量控制的
16位检验和:包括计算TCP首部和数据综合的二进制反码和检验和。
16位紧急指针:URG为1时有效,正向的偏移量,加上序号字段值表示最后一个字节的序号。通常在暂时中断通信时使用(比如输入 Ctrl + C)。
三次握手和四次挥手
计算机网络知识
计算机网络知识
三次握手:
第一次握手主要是确定服务端确认客户端能够发送信号;第二次握手主要是客户端确认服务端能够接收和发送信号;第三次握手主要是服务端确认客户端能够接收信号
四次挥手:
第一次挥手是服务端确认客户端需要断开连接;第二次挥手是客户端确认服务器接收断开请;第三次挥手是客户端确认服务器数据发完,断开连接;第四次挥手是服务端确认客户端断开连接,断开连接。所以如果服务端的数据全部发送完,是没有第三次挥手,直接进入第四次挥手。
TCP流量控制和TCP拥塞控制
窗口:
拥塞控制和流量控制的差别:
TCP流量控制
所谓的流量控制就是接收方让发送方的发送速率不要太快,让接收方来得及接受。利用滑动窗口机制可以很方便的在TCP连接上实现对发送方的流量控制。TCP的窗口单位是字节,不是报文段,发送方的发送窗口不能超过接收方给出的接收窗口的数值。
计算机网络知识
计算机网络知识
假设主机A向主机B发送数据。双方确定的窗口值是400.再设每一个报文段为100字节长,序号的初始值为seq=1,图中的箭头上面大写ACK,表示首部中的却认为为ACK,小写ack表示确认字段的值。
计算机网络知识
计算机网络知识
下面这张接收窗口(rwnd)图和上面的数据不是对应的,但是能说明窗口大小调整的过程,可以自己将下面的图进行修改,用上面的数据分析:
假设B向A发送了rwnd=0的报文段后不久,B的接收缓存又有了一些存储空间。于是B向A发送了rwind=400的报文段,然而这个报文段在传送中丢失了。A一直等待收到B发送的非零窗口的通知,而B也一直等待A发送的数据。这样就死锁了。为了解决这种死锁状态,TCP为每个连接设有一个持续计时器。只要TCP连接的一方收到对方的零窗口通知,就启动持续计时器,若持续计时器设置的时间到期,就发送一个零窗口探测报文段(仅携带1字节的数据),而对方就在确认这个探测报文段时给出了现在的窗口值。
TCP拥塞控制
拥塞控制原理
发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就增大一些,以便把更多的分组发送出去。但是只要网络出现拥塞,拥塞窗口就减小一些,以减少注入到网络的分组数。
拥塞控制设计
从控制理论的角度来看拥塞控制这个问题,可以分为开环控制和闭环控制两种方法:
拥塞控制方法
因特网建议标准RFC2581定义了进行拥塞控制的四种算法,即慢开始(Slow-start)、拥塞避免(Congestion Avoidance)、快重传(Fast Restrangsmit)和快回复(Fast Recovery)。我们假定:
慢开始算法
最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。因此新建立的连接不能够一开始就大量发送数据包,而只能根据网络情况逐步增加每次发送的数据量,以避免上述现象的发生。具体来说,当新建连接时,cwnd初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,cwnd就增加至多1个MSS大小。用这样的方法来逐步增大拥塞窗口CWND。这里用报文段的个数的拥塞窗口大小举例说明慢开始算法,实时拥塞窗口大小是以字节为单位的。如下图:
计算机网络知识
计算机网络知识
拥塞避免算法
让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍。这样拥塞窗口按线性规律缓慢增长。
慢开始和拥塞避免轮换机制
为了防止cwnd增长过大引起网络拥塞,还需设置一个慢开始门限ssthresh状态变量。ssthresh的用法如下:
乘法减小和加法增大
计算机网络知识
计算机网络知识
快重传和快恢复
一条TCP连接有时会因等待重传计时器的超时而空闲较长的时间,慢开始和拥塞避免无法很好的解决这类问题,因此提出了快重传和快恢复的拥塞控制方法。
UDP
UDP应用
由于UDP是不可靠的、无连接的服务并且传输效率高,所以UDP应用的特点就是需要实时数据,可以允许丢包。所以QQ、视频软件、TFTP 简单文件传输协议(短信)等都是UDP应用。
UDP的实现
由于在IP地址中存在一些广播地址,UDP主要是通过它们来实现的结语: IT即互联网技术,从事的工作和网络有很大的关系,前端要负责和后台(服务器)进行交互,其必然得经过网络,所以懂点网络知识有很大的帮助。
分享到: 0