TCP在数据传输前,先要进行链接测试(三次握手),如果测试通过才会发送真实数据。
TCP将若干字节构成一个分组,叫报文段
TCP报文封装在IP数据报中
面向连接,慢 稳定
源端口号:为发送方进程对应的端口号
目标端口号:对应接收端的进程接收端收到数据段后,根据这个端口号
确定把数据送给哪个应用程序的进程
序号:当TCP从进程接收数据字节时,就把它们存储在发送缓存中,并
对每一个字节进行编号
确认号:表示接收方期望收到发送方下一个报文段的第一个字节数据的编号
首部长度:表示TCP报文段的首部长度,共4位,由于TCP首部包含一个长度可变的选 项部分,需要指定这个TCP报文段到底有多长。它指出 TCP 报文段的数据 起始处距离 TCP 报文段的起始处有多远。
URG :表示本报文段中发送的数据是否包含紧急数据。后面的紧急指针字段只有当 URG=1时才有效
ACK(确认位):表示是否前面确认号字段是否有效。只有当ACK=1时,前面的确认号字 段 才有效。TCP规定,连接建立后,ACK必须为1,带ACK标志的TCP报 文段称为确认报文段
PSH(急切位):提示接收端应用程序应该立即从TCP接收缓冲区中读走数据,为接收后 续数据腾出空间。如果为1,则表示对方应当立即把数据提交给上层应 用,而不是缓存起来,如果应用程序不将接收到的数据读走,就会一直停 留在TCP接收缓冲区中
RST(重置位):如果收到一个RST=1的报文,说明与主机的连接出现了严重错误(如主 机崩溃),必须释放连接,然后再重新建立连接。或者说明上次发送给主 机的数据有问题,主机拒绝响应,带RST标志的TCP报文段称为复位报文 段
SYN(同步位):在建立连接时使用,用来同步序号。当SYN=1,ACK=0时,表示这是一 个请求建立连接的报文段;当SYN=1,ACK=1时,表示对方同意建立连 接。SYN=1,说明这是一个请求建立连接或同意建立连接的报文。只有 在 前两次握手中SYN才置为1,带SYN标志的TCP报文段称为同步报文段
FIN(断开位):表示通知对方本端要关闭连接了,标记数据是否发送完毕。如果FIN=1, 即告诉对方:“我的数据已经发送完毕,你可以释放连接了”,带FIN标志的 TCP报文段称为结束报文段
窗口大小:表示现在允许对方发送的数据量,也就是告诉对方,从本报文段的确认号开始 允许对方发送的数据量,达到此值,需要ACK确认后才能再继续传送后面数 据
校验和:提供额外的可靠性紧急指针:标记紧急数据在数据字段中的位置
选项部分:其最大长度可根据TCP首部长度进行推算。TCP首部长度用4位表示,
在数据通信之前,发送端与接受端要先建立连接,等数据发送结束后,双方再断开连接,
TCP连接的每一方都是由一个IP地址和一个端口号组成,
一次握手:当服务端收到请求建立连接的报文,报文号随机产生并且报文中的控制位SYN=1,代 表请求建立连接,此时客户端处于syn-sent状态
二次握手:服务端收到请求连接的报文会回复一个报文会产生随机序号y,生产一个确认号为
客户端请求报文的序号+1(x+1),然后控制位syn=1 ack=1 代表同意建立连接,此时
服务器处于syn-rcvd状态
三次握手:当客户端收到同意建立连接的报文时会回复一个确认报文会按照对方要求产生序号为 x+1再生成一个确认号值为对方报文的序号+1(y+1)最后控制位的ack=1,代表收到对 方同意,此时客户端处于estab-lished状态,
当服务器收到ack报文也处于estab-lished状态,此时双方已建立连接
确保双方都知道对方已经准备好关闭连接,防止数据丢失
1 客户端发送一个FIN报文,报文指定一个序列号,此时客户端处于fin-wait-1状态
2 服务端接到报文段后,返回一个带有ACK=1的报文段,确认了收到了客户端断开请求,此时客 户端会将未完成的数据发送给客户端,进入close-wait状态
3 若服务端也想断开连接,和客户端的第一次挥手一样,发给FIN报文,且指定一个序列号,此时 处于last-ack状态
4 客户端收到FIN之后,一样发送一个ACK报文作为回答,且把服务器的序列号值+1作为自己 ACK报文的序列号值,此时客户端处于time-wait
CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求 (服务开启 http(进程) 80端口在帮进程 看着 有没有人找 http )
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认
无连接 不稳定 快(以下优点记住就行)
工作在传输层
面向连接协议
全双工协议:在同一时间内双向传输
半关闭
错误检查
将数据打包成段,排序
确认机制
数据恢复,重传
流量控制,滑动窗口
TCP | UDP |
面向连接 | 无连接 |
由重传机制 | 无重传机制 |
传输速度慢 | 传输速度快 |
可靠 | 可靠 |
重要或大文件 | 聊天软件,视频会议 |
远程连接
TELNET + IP地址
修改用户权限
sys
user-interface vty 0 4
user privilege level 15
1.选择网卡
选取你需要抓取的网卡,有波浪线代表有数据流量
2.模式选择
(1)混杂模式: 就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。
(2)普通模式:网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
TIP:混杂模式不会影响网卡正常工作,建议使用混杂模式。
3.过滤器的使用