传输层协议

  • 目录

目录

一.TCP协议

二.TCP报文段

三.三次握手

四.四次挥手

五.常用的TCP端口号及功能

六.TCP协议与UDP协议的区别

七.常用的UDP端口号及功能

总结


传输层协议主要有两个:TCP——传输控制协议

                                        UDP——用户数据报协议

一.TCP协议

TCP是面向连接的,可靠的进程到进程通信的协议

TCP提供全双工服务,即数据可在同一时间双向传输

TCP报文段:

  • TCP将若干个字节构成一个分组,叫报文段
  • TCP报文封装在IP数据报中                 

二.TCP报文段

 源端口号和目的端口号——各占2字节。端口是运输层与应用层的服务接口。运输层的复用和分用功能都要通过端口才能实现。

序号——占4字节。TCP连接中传送的数据流中的每一个字节都编上一个序号。序号字段的值则指的是本报文段所发送的数据的第一个字节的序号。

确认号——占4字节,是期望收到对方的下一个报文段的数据的第一个字节的序号。

数据偏移(即首部长度)——占4位,它指出TCP报文段的数据起始处距离TCP报文段的起始处有多远。“数据偏移"的单位是32位字(以4字节为计算单位)。

保留字段——占6位,保留为今后使用,但目前应置为0。

紧急URG——URG=1时,表明紧急指针字段有效。它告诉系统此报文段中有紧急数据,应尽快传送(相当于高优先级的数据)。

确认ACK——只有当ACK=1时确认号字段才有效。当ACK =0时,确认号无效。

推送 PSH ——接收TCP收到PSH =1的报文段,就尽快地交付接收应用进程,而不再等到整个缓存都填满了后再向上交付。

复位RST ——当RST =1时,表明TCP连接中出现严重差错(如由于主机崩溃或其他原因),必须释放连接,然后再重新建立运输连接。

同步SYN——同步SYN=1表示这是一个连接请求或连接接受报文。

终止FIN——用来释放一个连接。FIN=1表明此报文段的发送端的数据已发送完毕,并要求释放运输连接。

窗口——占2字节,说明本地可接收数据段的数目,这个值的大小是可变的。TCP协议中的流量控制机制就是依靠变化窗口值的大小实现的。

检验和——占2字节。检验和字段检验的范围包括首部和数据这两部分。在计算检验和时,要在TCP报文段的前面加上12字节的伪首部。

紧急指针字段——占16位,指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。

选项字段——在TCP首部可以有多达40字节的可选信息。

三.三次握手

TCP建立连接的过程称为三次握手

  • 客户端A向服务器B发送SYN同步请求,请求与服务器建立连接
  • 服务器B收到SYN同步请求后,会针对客户端A的SYN同步请求进行ACK响应,与此同时也会发送一个SYN同步请求发给客户端A
  • 客户端A收到服务器B发过来的SYN同步请求时,会给予一个ACK响应

Seq表示请求序列号,Ack表示确认序列号,SYN表示同步位,ACK表示确认位

三次握手原理;
客户端向服务器发送SYN同步请求,请求与服务器建立连接,服务器收到此SYN同步请求后,会针对客户端的SYN同步请求进行ACK响应的同时也会发送一个SYN同步请求,当客户端收到服务器发过来的SYN同步请求时,会给予一个ACK响应。

为什么要三次握手?
因为TCP是可靠的传输层协议,它在传输数据前,会建立双向数据通信通道,当保证双向数据传输的通道没有问题时,才会发送数据,起到保护数据的作用。

四.四次挥手

  • 客户端A想要与服务器B断开连接,客户端A先发送(FIN=1)请求断开。
  • 服务器B回复(ACK=1)同意断开。这是半断开,这时客户端A已无法继续连接服务器B,但是服务器B仍能给客户端A发送数据。
  • 接着服务器B也想断开与客户端A的连接,服务器B发送(FIN=1)并(ACK=1)确认。
  • 客户端A回复(ACK=1)确认断开。

 四次断开原理:
客户端向服务器发送FIN断开请求,服务器接收到此请求后,回复一个ACK。服务器向客户机发送FIN断开请求,客户机收到此请求后,回复一个ACK。

三次握手握三次,为什么断开要断四次?
数据传输方向是双向的,一个方向的数据通道关闭需要一次请求和一次确认,因此需要断两次,而我们有两个数据方向,因此需要断四次。

TCP半关闭状态是什么情况?
客户机向服务器发送了FIN请求,服务器也给予了ACK响应。但是,服务器和客户机之间还有数据要传输,因此服务器并没有向客户机立即发送FIN请求。

五.常用的TCP端口号及功能

端口协议说明
    21                FTP             FTP服务器所开放的控制端口
23Telnet用于远程登录,可以远程控制管理目标计算机
25SMTPSMTP服务器开放的端口,用于发送邮件
80HTTP超文本传输协议
110POP3

用于邮件的接收

客户端根据需要那种服务,从而发送到特定的目的端口

端口划分为三个类别,其范围介于1到65,535之间。

一公认端口(server)
与通用网络应用程序相关联的目的端口称为公认端口。这些端口的范围从1到1023。
一注册端口(c/s)
端口1024到49151可作为源端口或目的端口使用。组织可使用这些端口注册即时消息等应用程序。
一私有端口(client)
端口49152到65535通常作为源端口使用。

六.TCP协议与UDP协议的区别

UDP协议

  • 无连接,不可靠的传输协议
  • 花费的开销小,传输效率高

TCP协议

  • 面向连接,可靠的传输层协议
  • 分段,重组,重传
  • 滑动窗口
  • 使用于对可靠性要求较高的场合

七.常用的UDP端口号及功能

端口协议 说明
69TFTP 简单文件传输协议
111RPC远程过程调用
123 NTP网络时间协议

总结

TCP建立连接需要三次握手,而断开连接需要四次握手。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值