网络协议:网络为进行数据交换而建立的规则
局域网常用的协议:
- TCP/IP 协议 (目前最流行的协议,没有根本上不了网)
- NetBEUI
- IPX/SPX协议 (用来连接玩游戏的)
其中TCP/IP协议包括了上百个互为关联的协议(位于传输层)
- Telnet 提供 远程登录功能
- FTP 远程文件传输协议
- SMTP 简单邮政传输协议
- NFS 网络文件服务器
- UDP 用户数据包协议,(位于传输层,和IP协议配合使用,在传输数据省去包头,不能提供数据包重传,所以适合传输较短的文件)
TCP/IP 协议详解
TCP/IP协议是基本的协议 由网络层的IP协议和传输层的TCP协议组成;该协议采用4层结构
- TCP (传输控制协议)
TCP是面向连接的、可靠的、基于字节流的传输成通信协议
TCP 头部
一般情况下 TPC header 的长度是20个字节
上述两图中需要注意的地方 :
- TCP layer 没有IP地址的概念,所以4个字节 是源端口和目的端口
- Sequence Number(序号):传输过程中,为每一个封包分配了一个序号保证网路传输数据的顺序性;
- Acknowledgment Number(确认号):用来确认收到相关封包,内容表示期望收到下一个报文的序列号,用来解决丢包问题
- TCP Flags: 标志数据包的属性,比如SYN,RST,FIN,PSH, URG, ACK,操控TCP的状态机
- Windows:滑动窗口,主要用于解决流控拥塞问题
- Checksum : 校验值
- Urgent Pointer : 紧急指针,可告知紧急的数据位置,需要Flag和U flag 配合使用
TCP options :一般包含三次握手中,有option 选项!
TCP Flags 解释 :
URG 用来 督促中间层设备要要尽快处理这些数据;
- ACK : 表示应答域有效
- PSH : 数据包到达接收端以后,立即传送给应用程序,而不是排队等候;
- RST : 表示连接复位请求,用来复位那些产生错误的连接;
- SYN :用来建立连接
- FIN:表示发送端已经达到数据末尾,双方数据传输完成。
1、第一次握手:建立连接,客户端发送连接请求报文,将 SYN 位置为1,Seq为X,然后客户端等待状态,等待服务器确认;
2、第二次握手; 服务器收到SYN报文段,对SYN进行确认。设置Acknowledgment Number(确认号)为X+1(seq+1);同时发送自己的SYN信息,将SYN位置为1,seq为y,服务器将信息放在报文段中,发送给客户端,服务器进行进行SYN_RECV状态
3、第三次握手, 客户端接受到 SYN+ACK 报文段,将Acknowledgment Number确认号设置为y+1 向服务器发送ACK报文段,发送完毕,连接成功