TCP/UDP/IP/ICMP

TCP/UDP/IP/ICMP 

在掌握计算机网络时,学的时候应该从最底层开始结束于应用层,但等学完之后,融会贯通的时候,应该从最高层向最底层开始。
    1
现代计算机网络中,都采用存储转发分组交换技术,分组交换又采用数据报和虚电路两种形式,实际上数据报方式就是我们通常所说的面向无连接的,也就是UDP方式,而虚电路实际上就是我们通常所说的面向连接的,也就是TCP采用的方式。
   
采用存储转发的优点:
通信子网中的路由器可以存储报文,所以多个报文可以共享通信信道,线路的利用率高。
路由器具有路由选择功能,可以动态选择报文通过通信子网的最佳路径。
   
采用分组的优点
   
由于分组的长度比较短,在传输出错时发现错误容易,并且重发需要花费的时间少,这样就有利于提高存储转发节点的存储空间利用率与传输效率。
   
数据报方式特点是,每个分组可能经过的路由不一样,而且到达目的节点的次序也不一定,而且每个分组都必须带有目的地址和源地址信息。
   
虚电路方式特点是,每个分组经过相同的路由,而且不加任何目的地址和源地址的信息,到达目的节点时是有序到达。
    2.
无论TCP还是UDP传递给网络层的时候都要进行分组。
    3.ICMP
协议时网络层非常重要的一个协议。它负责网络层的差错和控制,
      ICMP
的差错控制功能表现如下:
   
目的站不可达,当路由器不能为数据包找到路由器或者主机交付时,就丢弃该数据报,然后该路由器会向源主机发出ICMP差错报告报文。
不能交付数据报,有可能是,目的主机没有开机或者机器故障,
或者是目的主机号不存在,
还有可能是路由器找不到去往目的主机的路径。 
路由器知道目的网络存在,但是无法到达。
如果找到了目的网络和目的主机,但是到达目的主机后发现自己IP数据报携带的是TCP协议而对方采用的UDP协议。
如果目的网络,目的主机,协议,都相同,但是目的主机的端口号不对。
   
源站抑制,每个发送端都向路由器和目的节点发送数据分组,这样导致路由器和目的节点缓冲区队列溢出,或者路由器和目的节点的处理速度远远小于源节点的发送速度。这样路由器和目的节点就会丢弃数据报,而且给源节点发送ICMP数据。
   
超时,路由表出现问题,整个网络的转发会出现错误,极端的情况是造成数据包在某些路由器之间循环,使得数据包在网络中无休止的传输。为了对付这些问题,IP协议会在数据包头中设置生存时间(TTL),二是设置定时时间,只对这两种情况ICMP这是了超时报文。针对第一种情况,当路由器转发数据报时,讲TTL-1后等于0时,就丢掉数据报,而且向源主机发送超时报文。第二种情况,当组成一个数据报的所有分组未能在某一限定时间内到达目的主机,目的主机就不能将接受的分片重新组装成数据报,而一个数据的部分分片将长期占用主机的缓冲区,如果多个数据包都出现这种情况,就会造成目的主机既不能接受新的数据报,又已接受的数据分片不能组装成数据报而出现死锁。因此当某一个数据包的第一个数据分片到达时,目的主机就启动计时器,当计时器时间到了,目的主机还没有接收到一个数据包的所有分片,他会将接受的分片丢弃,并向源主机发送超时报文。
改变路由,发送数据包的源主机和路由器都有一张路由表。主机的路由表采用静态的,主机通过ICMP获得正确的路由信息(例如AB通信,正确的是路由器2但却发给了路由器1,路由器1知道正确的路由应当是路由器2,于是路由器1将正确的路信息),当网络的拓扑结构发生变化时,各个路由器间通过ICMP交换动态路由信息。

 

传输层中的两个重要协议TCPUDP
       -QoS,
服务质量,衡量传输层QoS的参数有:(1)建立连接的延迟(2)建立连接失败的概率(3)吞吐率(吞吐率是指每秒钟传输的用户数据的字节数,他是在某个时间间隔内测量的到的数据)(4)传输延迟(5)恢复功能
       -UDP
UDP采用面向无连接的,并且只提供有限的差错控制,因此协议简单,在一些特定的应用中协议运行效率高。如:IP电话,视频会议,FTP,DNSSNMP,他们要求源主机以恒定的速度发送数据,而且在网络出现拥塞时,可以丢弃一些数据,但是希望延迟不大。
       -TCP
TCP,采用面向连接的,高可靠,全双工(因此释放链接的时候,要四次挥手),提供流量控制与拥塞控制。
1.
窗口(用来实现流量控制),大小可变的窗口是TCP协议进行流量与拥塞控制的重要方法,当一个传输链接建立时,连接的每段都要分配一块缓冲区来存储接收到的数据,并将缓冲区的大小发送给另外一段,窗口大小的单位是BYTE(这样编程起来是很方便的),发送窗口在连接建立时由双方商定,TCP报文头部的窗口域写入的数值就是当前双方设置的窗口数值,但是在通信的过程中,接受端可以根据自己的资源情况,随时动态调整对方发送窗口的增大或减小,这种有接收端控制发送端的做法在网络经常使用,当数据到达时,接收端发送确认,其中包括自己剩余的缓冲区大小,接收端发送的每个确认都包含一个窗口通告。实现流量控制并非仅仅为了使接收端来的及接受,如果发送端发出的报文过多,会使网络通信负荷过重,由此引起报文段的延时增大,报文延时增大,将使主机不能及时的收到确认,就会重传更多的报文,而这又会进一步加剧网络的拥塞,为了避免发生拥塞,主机应当降低发送速率。因此发送端的主机在发送数据时,既要考虑到接收端的接收能力,又要使网络不要发生拥塞。通知窗口由接收端根据其接受能力确定的窗口值,是来自接收端的流量控制,拥塞窗口是发送端根据网络拥塞情况确定的窗口值,它由发送端的流量控制算法决定(如果发送端在重传计时器到期前,没有收到对报文段的确认,就可以认为出现拥塞)。在没有发生拥塞的稳定工作状态下,接收端的通知窗口和发送方的拥塞窗口应该保持一致。如果网络中出现传输错误,报文丢失的可能性比传输过程中误码的可能性大(目前的通信信道质量已经明显改善,由于通信线路带来的的误码,而造成分组丢失的概率很低)。  
2.TCP
差错控制,
       .
传输出错报文段(TCP通过报头的检验和来判断是否发生传输错误,传输错误也叫受损报文段,TCP接受端采用丢弃不给予确认的机制),
       .
丢失的报文段(被中间某一个节点丢失的),
       .
重复报文段(TCP接收端将重复的分组丢弃一个即可),
       .
确认丢失(TCP发送端发了3个报文段,TCP接受方成功接收后,发送确认,发送确认报文1,2,3,但是确认报文2没有收到,但是确认报文段3收到了,发送发TCP就忽略没有收到确认报文2,后面的收到了前面的你肯定也受到了)。由于TCP采用全双工通信,也就是说发送方给接收方发送数据的同时,接收方也可能给发送方发送数据,但是无论谁给谁发,都要有确认信息。TCP采用捎带技术发送确认信息,就是说,接收方成功接受数据后,这时候接收方也有数据发给发送方,那么接收方就把确认信息附加在发送给发送方的数据里面。
3.TCP
计时器,
       .
重传计时器(由于全双工,收发双发都有计时器),
       .
坚持计时器(当接收端的处理速度小于发送端的发送速率时,接收端TCP发送一个0窗口,于是发送端TCP就停止发送,等待一个非0窗口的到来,但是接受方TCP发送一个非0窗口确认,然而这个确认丢失。接收端TCP发送完确认数据报后,就等待发送端发送数据,但是他不知道确认数据报已经丢失了。发送端TCP由于没有收到确认,就等待接收方发送确认来通知窗口大小,这样双方TCP处于死锁。为了避免出现死锁,TCP为每个连接使用一个坚持计时器,当发送端收到一个窗口大小为0的确认时,就需要启动坚持计时器。当时间到,发送端的TCP就发送一个特殊的探测报文,该报文只有1B大小,探测数据报提醒接受方的TCP:确认窗口报文已丢失,必须重传),
       .
保持计时器(如果客户建立到服务器的连接,发送一些数据,然后停止传送,可能这个客户端出现故障,这种情况下,这个连接将永远处于打开状态。为了避免此类事件,服务器端设置一个激活计时器。服务器已接受到客户的信息后就将计时器复位,如果服务器超过激活计时器规定的时间还没有收到客户的信息,就每隔一个时间发送一个探测报文,如果发送10个探测报文后还没有响应,就判断客户端出现故障,服务器终止连接),
       .
时间等待计时器(当TCP释放一次连接时,例如四次挥手中,第四次的报文丢失,TCP规定被动释放链接的一方,在同意释放链接报文发出后,启动时间等待计时器,如果时间到达前收到了应答,则释放链接,如果规定时间内没有收到应答,则重新传送允许释放链接的报文)
4.TCP
,谁发送数据在谁的一方就有个重发定时器等待确认。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值