TCP/IP协议族

1.1 TCP/IP分层

图1-1  TCP/IP协议族的四个层次
分层功能协议
链路层包括操作系统中的设备驱动程序和网络接口卡。负责处理与电缆的物理接口细节

ARP(地址解析协议)

RARP(逆地址解析协议)

网络层处理分组在网络中的活动,如:分组的选路

IP协议(网际协议)

ICMP(互联网控制报文协议)

IGMP(互联网组管理协议)

运输层为两台主机的应用程序提供端到端的通信

TCP(传输控制协议)

UDP(用户数据报协议)

应用层负责处理特定的应用程序细节

Telnet(远程登录)

FTP(文件传输协议)

SNMP(简单网络管理协议)

SMTP(简单邮件传送协议)

补充:

  • ICMP:是IP协议的附属协议。用于与其他主机或路由器交换错误报文和其他重要信息。应用程序也有可能访问它。诊断工具Ping和Traceroute都使用了ICMP。
  • IGMP:是IP协议的附属协议。用于把一个UDP数据报多播到多个主机
  • ARP:   IP地址——>硬件地址
  • RARP: 硬件地址——>IP地址
图1-2 TCP/IP协议族中不同层次的协议
  • 网络层  ifconfig命令:查询和配置网络接口
                 netstat命令:打印每个网络接口的分组传输信息

1.2  API socket

        使用TCP/IP协议的应用程序通常采用两种应用编程接口(API): socket和TLI (运输层接口:Transport Layer Interface)。

1.3 TCP三次握手与四次挥手 

TCP的标志位

  • SYN :同步标志位,用于建立会话连接,同步序列号;
  • ACK :   确认标志位,对已接收的数据包进行确认;
  • FIN : 完成标志位,表示我方已经没有数据要发送了,即将关闭连接。

TCP建立连接(三次握手)

  1. 客户端发送一个SYN包(Seq=x),发送完后进入SYN_SEND状态;
  2. 服务器返回ACK应答(ACK=x+1),同时发送一个SYN包(Seq=y),然后进入SYN_RCVD状态;
  3. 客户端发送ACK确认包(ACK=y+1),然后进入ESTABLISHED状态;服务器接收到这个包,也进入ESTABLISHED状态。

TCP关闭连接(四次挥手)

  1. 客户端发送一个FIN包(Seq=x),告诉服务器需要关闭连接,表示自己不用发数据了,但还可以接收数据,然后进入FIN_WAIT_1状态;
  2. 服务器发送一个ACK包(ACK=x+1),然后进入CLOSE_WAIT状态;客户端收到包后,进入FIN_WAIT_2状态;
  3. 服务器发送一个FIN包(Seq=y),进入LAST_ACK状态;
  4. 客户端发送一个ACK包(ACK=y+1),进入TIME_WAIT状态,等待服务器可能请求重传ACK包。         服务器接收到ACK包,关闭连接,进入CLOSED状态。         客户端等待固定时间后,没有收到服务器的请求包,认为服务器已关闭连接,自己也关闭连接,进入CLOSED状态。
三次握手
四次挥手

Q:为什么建立连接是三次握手,关闭连接却是四次握手?

A : 建立连接时服务器端收到客户端的SYN连接请求报文后,可以直接发送SYN+ACK报文。

     关闭连接时服务器端收到客户端的FIN报文时,先返回ACK报文,表示自己知道客户端没有数据要发送了;等到服务器端数据发送完毕后,再发送FIN报文告诉客户端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值