TCP与UDP

  
 <代码> IP提供了点到点的连续接,通过IP地址可以找到目标主机。但是目标主机有很多应用,服务器到底使用哪个应用来响应客户端?通过端口号决定。
  一,TCP:传输控制协议——传输控制协议 
  

可靠的,面向连接的协议,就像拨打电话号码拨通后和同伴沟通,需要建立连接,发送数据,断开连接,网络中大部分是TCP、重要的数据传输也是TCP
1。TCP的封装格式
 TCP与UDP
目标端口号:表明要访问的哪个应用,如80年端口表示http
源端口号:标识自己的应用
序列号:上层数据被分成很多段,段的编号
确认号:接收方收到数据段后,要告诉发送方已收到
窗口大小:接收方告知发送发一次可以发多少个段
2。三次握手:TCP建立连接的过程
 TCP与UDP
(1)发送方一个发送SYN=1的数据段给接收方B SYN:同步同步
(2) B回应SYN=1, ACK=1的数据段给一个ACK:承认确认
(3)发送ACK=1的数据段给B
3。四次断开:TCP发送完数据后,断开连接的过程有4步
 TCP与UDP
(1)主机一个发送鳍=1的数据段给对方B鳍:最后最终
(2)另外一方B回应ACK=1的数据段给
(3) B也发送鳍=1的数据段给一个
(4)回应ACK=1的数据段给B
4。TCP的流控机制:(1)滑动窗口——窗口大小是变化的,接收方可以告诉发送方发送几个窗口,若自己接收不了,也可以随时告知发送方更改发送窗口数。
(2)拥塞控制——口语来说就是有个希望接收值和实际接收值,比如希望传输十个窗口,但实际链路带宽较窄时,传输变为5
(3)方式:一个发送方发送数据有编的号,接收方确认号是发送编号加1。如,发送100,接收方确认101。
B:如果发送方发送100101102,接收方全部接收后,采用累计确认方式。确认103年,意思是100 - 102全部接收到。发送方收到103年确认,那么它认之为103年前的数据已全部接收到了。
C:发丢谁确认谁:如果发送方发送100101102,接收方收到了100年和102年,接收方不能确认103年,因为一旦确认103年就表示全部收的到,所以它要确认101。
5。TCP的差错控制
(1)校验和:其实就是个校验工具,每个文件通过校验工具计算都会有个固定的校验码,如果文件有变化,哪怕小小的标点,校验码都会千差万别,用来检验数据是否有损坏或丢失
(2)确认:接收方明确告知发送方数据已收的到,同上面的发送方式
(3)超时:如果发送方长时间没有收到确认,将会重发
6。TCP四个计时器
(1)重传计时器:与上面的超时有关系
(2)坚持计时器:防止零窗口死锁问题例:给B发数据途中,B说先不要发,等我忙好说让一个发三个数据,但发丢了,出一个没现收到一直在等待,B在等一个发数据,所以发送方一个就会定期隔一段时间给我发个消息说还在等待,B就会重发一遍
(3)保活计时器:防止两个TCP连接之间长时间的空闲如果服务器发现客户端在一定时间内没有数据传输,则终止连接,否则会白白占用资源
(4)时间等待计时器:用在四次断开。主机一个请求断开连接,B回应可以断开。收到消息,等一会才真正断掉。
7。TCP的应用
 TCP与UDP

  

二、UDP:用户数据报protoco——用户数据报协议
不可靠的,非面向连接的服务,就像发qq消息,不用先连接通就可以发消息,但对法收没收到不知道,简单的域名解析属于UDP的服务
1。封装格式
 TCP与UDP
2。UDP的应用
 TCP与UDP
3. UDP的流控与差错控制
UDP没有流控机制
只有校验和来提供差错控制,需要上层协议来提供差错控制:例如TFTP协议

TCP与UDP