b 传输层简单介绍

–> go to 总目录

传输层概念

20byte = 4 byte(32) * 5
UDP头部仅需要8字节 4 * 2
MTU网络帧的最大长度,要小于1472

在这里插入图片描述

面向连接和无连接

面向连接:计算机之前要维护一个连接
无连接:单向发送数据包,不承担通知目的计算机接受数据的职责

端口和套接字

应用程序可以通过TCP/UDP向指定端口发送数据,达到向目的应用程序发送数据。

常用tcp端口列表

更多地址

1tcpmuxTCP
5rje远程作业入口
7echo Echo服务
9discard用于连接测试的空服务
11systat用于列举连接了的端口的系统状态
13daytime给请求主机发送日期和时间
17qotd给连接了的主机发送每日格言
18msp消息发送协议
19chargen字符生成服务
20ftp-data FTP 数据端口
21ftp文件传输协议
22ssh安全
23telnetTelnet
25smtp简单邮件传输协议

多路复用/分解

多路复用的关键就是端口号,依靠端口号准确无误的发送数据

TCP

TCP特性

  • 面向流的处理
  • 重新组装排序
  • 流量与安全
  • 优先与安全

TCP数据格式

下来的交互流程中会对照解释这些字段

在这里插入图片描述
在这里插入图片描述

  • 源端口、目的端口
    16位 256*256 =65536
  • 序列号 32
    SYN标记不为1,这就是当前数据分段第一个字节的序列号,如果SYN为1,这个字段的初始值就是初始序列值(ISN)由于对序列号同步,这是第一个字节序列号比这个字段的值大1(ISN+1)
序号
SYN != 1第一个字节序列号
SYN ==1ISN,ISN+1
  • 确认号
    用于接受已经收到的数据分段,其值就是计算机即将接受到的下一个序列号,也就是上一个接受到的字节的序列号+1。
  • 数据偏移
    4位首部长度,这个字段表示报头的长度。也就告诉我们接收端的TCP软件数据从何开始,这个值得单位是32位的字。
  • 保留
    为TCP未来发展的保留字段,必须全为0。
  • URG
    为1时表示当前的数据分段是紧急的,也会让紧急指针字段的值有意义
  • ACK
    为1时表示确认号是有意义的
  • PSH
    为1时表示TCP软件把目前收到的全部数据都通过管道传递给接受应用程序
  • RST
    为1时会重置连接
  • SYN
    为1时表示序列号将被同步,说明这是一个连接的开始
  • FIN
    为1时表示计算机已经没有数据发送
  • 窗口
    用于流量控制参数,它定义了发送计算机的发送序列号可以超过最后一个已确认序列号的数量。也就是说,发送方不必等待每个数据段被准确的接受收才发下一个数据分段,允许已接确认接收到的序列号与正在发送的序列号有一定差别,但必须在适当的范围
  • 校验和
    用于检查数据分段的完整性,接收端计算机会根据接受到的数据计算校验和,并且把结构和这个字段比较。TCP/UDP在计算校验和时包含一个具有IP地址的伪报头
  • 紧急指针
    这是一个偏移量指针,指向标记紧急信号开始的序列号
  • 选项
    指定一些可选设置中的某一项
  • 填充
    填充额外的0
  • 数据
    数据分段中的数据

TCP交互流程

三次握手建立连接、四次握手断开连接

  • 被动打开
    被通知去建立TCP连接,去传给应用程序数据
  • 主动打开
    通知别人主动去建立连接。通常服务器都是监听端口,等待别人建立连接。

相互传数据时计算机a、b都必须知道对方的ISN(初始序列号)
a去向b发送请求建立连接

建立连接

详细
在这里插入图片描述

step1:
A主动发送消息,SYN=1(数据的开始),(确认字段)ACK=0,序列号seq(当前A接受数据的位置)。然后就进入SYN-SENT字段。
step2:
服务端B,接受到消息后。SYN设为1,ACK设为X+1。序列号为y(b的接受)
step3:
seq设置为X+1,ACK为Y+1

断开连接

在这里插入图片描述
step1:
客户端发送一个报文给服务端(没有数据),其中FIN设置为1,Sequence Number置为u,客户端进入FIN_WAIT_1状态
step3:
服务端收到来自客户端的请求,发送一个ACK给客户端,Acknowledge置为u+1,同时发送Sequence Number为v,服务端年进入CLOSE_WAIT状态
step3:
服务端发送一个FIN给客户端,ACK置为1,Sequence置为w,Acknowledge置为u+1,用来关闭服务端到客户端的数据传送,服务端进入LAST_ACK状态
step3:
客户端收到FIN后,进入TIME_WAIT状态,接着发送一个ACK给服务端,Acknowledge置为w+1,Sequence Number置为u+1,最后客户端和服务端都进入CLOSED状态

秒懂图

可以看见,依赖ACK去标识
在这里插入图片描述

UDP

UDP十分简单是广播协议默认传输协议。User Datagram Protocol

协议格式

在这里插入图片描述

伪包头

在这里插入图片描述
UDP和TCP都是
伪首部, 又称为伪包头(Pseudo Header):是指在 TCP 的分段或 UDP 的数据报格式中,在数据报首部前面增加源 IP 地址、目的 IP 地址、IP 分组的协议字段、TCP 或 UDP 数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。

防火墙

防火墙就是TCP/UDP层

wireshake的使用

格式查看

https://www.cnblogs.com/mq0036/p/11187138.html
在这里插入图片描述

按照source和dest过滤

ip.dst192.168.101.8;查找源地址为ip.src1.1.1.1;

&& || !

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值