传输层协议

一、TCP/IP协议

        1.概念

        TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTPSMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

        2.TCP协议

        TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都有发送缓存和接收缓存,用来临时存储数据。

        为了保证传输的可靠性,在正式收发数据前,必须和对方建立可靠的连接。TCP每发出一个数据包都要求确认,如果有数据包丢失,发送方就需要重发这个数据包。

        TCP特性:

  1. 工作在传输层

  2. 面向连接协议

  3. 全双工协议

  4. 半关闭

  5. 错误检查

  6. 将数据打包成段,排序

  7. 确认机制

  8. 数据恢复,重传

  9. 流量控制,滑动窗口

        2.1 头部信息

TCP协议头部信息包含以下字段:

        1. 源端口号和目的端口号:16位,用于标识源主机和目的主机的应用进程。

                端口号:区别应用程序(区别    tcp  udp    协议)

                客户端的端口号:随机的

                服务端的端口号:一般固定的

                端口号区别七层协议

                范围:0-65535 前1024是知名 80http ftp21 20 ssh22 telnet23 tftp udp69

                端口号 不可以重复使用,一个端口号对应一个程序

        2. 序列号:32位,用于标识发送的数据流中的数据段的编号,用于重组数据流。

        3. 确认号:32位,用于标识期望接收的下一个数据段的序列号。

        4. 数据偏移:4位,指定TCP报文头部的长度,以4字节为单位。

        5. 保留位(Reserved):6位,保留未来使用。

        6. 标志位(Flags):6个标志位,用于控制TCP连接的建立、维护和关闭。

        7. 窗口大小(Window):16位,用于通知发送方可用的缓存空间大小,以控制发送方的传输速率。

        8. 校验和(Checksum):16位,用于保证TCP头部和数据的正确性。

        9. 紧急指针(Urgent Pointer):16位,用于指出紧急数据的末尾位置。

        10. 选项(Options):可变长度,用于包含一些额外的控制信息,如最大段长度、时间戳、窗口缩放等。         

控制位:

  • SYN:请求建立连接(同步位)
  • FIN:请求断开连接(断开位)
  • ACK:确认位        
  • RST:重置位
  • PSH:急切位
  • URG:紧急位

         3.TCP三次握手

        三次握手的目的是确保双方都已准备好进行数据传输,并且确保双方的初始序列号是正确的。

        

        TCP 三次握手的过程:

  • 客户端 主动发起 请求报文,报文序号是随机产生的x,并且报文中的 控制位 SYN=1 代表请求建立连接,客户端进入 SYN_SENT 状态。                                                                                
  • 当服务端收到请求建立连接的报文会 回复一个 报文,会产生随机序号y,生成一个确认号为 客户端请求报文序号+1(x+1),然后控制位 SYN=1 ACK=1 代表同意建立连接,服务器从LISTEN 进入 SYN_RCVD 状态。
  • 当客户端收到 同意建立连接的 报文时会回复一个 确认报文会按照对方要求 产生 序号为 x+1,再生成一个 确认好值为 对方报文的序号+1(y+1),最后 控制位 的ACK=1 代表收到 对方 同意连接的请求,客户端进入 ESTAB状态,服务器收到ACK报文后也进入   ESTAB 状态。

        为什么是三次握手而不是2次:为网络复杂为了确保数据能够到达,2次不够,4次多余,三次正好

        4.TCP四次握手

        四次握手(Four-way handshake)是TCP连接的释放过程。它是TCP连接的正常终止方式,用于确保连接的可靠关闭。

客户端先发送一个FIN给服务端,自己进入FIN_WAIT_1状态,这时等待接收服务端报文,该报文会有二种可能:

  • ACK=1                  进入半关闭

  • ACK=1 FIN-1        同意断开

        5.UDP协议

        UDP协议的数据包格式:

                包含四个字段:源端口号、目的端口号、长度和校验和。

                数据字段:应用数据

        UDP特性:

                1.工作在传输层

                2.提供不可靠的网络访问

                3.非面向连接协议

                4.有限的错误检查

                5.传输性能高

                6.无数据恢复特性

UDP端口号:

注:

telnet 协议:明文传输

telnet ip地址 端口号 80 服务软件是否正常

二、wireshark(抓包工具)

        Wireshark是一款网络协议分析工具,可以捕获和分析通信协议数据包。它能够解码各种网络协议,包括TCP/IP、HTTP、FTP、SMTP等,还可以对网络通信进行流量分析和报文分析,帮助开发人员和网络管理员解决网络故障和安全问题。

        Wireshark能够捕获网络中的数据包,并且对捕获的数据包进行详细分析。通过Wireshark,用户可以看到所有网络通信的细节,包括每个数据包的源和目的地址、数据包类型、数据包的负载、每个数据包的时间戳和传输速率等信息,可以非常方便地了解网络通信的情况。

        Wireshark还提供了强大的过滤功能,可以根据协议、源地址、目的地址、端口等条件来过滤数据包,从而帮助用户快速找到关注的信息。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值