TCP/IP五层协议栈:

TCP/IP是互联网数据传输协议,它不仅仅是TCP、IP这两种协议,而是一组网络协议,除了tcp、ip这两种还有其他的协议比如:UDP,FTP等。

国际标准化组织将网络协议分为了7层,分别是:物理层、链路层、网络层、传输层、会话层、表示层、应用层。而TCP/IP将协议则将网络协议分为5层:分别是物理层、链路层、网络层、传输层、应用层。

应用层:负责两个主机之间程序之间的通信,产生数据。

传输层:负责保证数据在不同主机之间的传输可靠性,负责向两个主机中进程之间的通信提供服务,建立端口到端口的通信。将数据加上TCP头,也就是源端口号和目的端口号,确认号、序号,标识号等。

网络层:负责数据的网络路由,以及转发。在传输层TCP数据报的基础上再加上IP头,首部长度、源IP地址、目的IP地址等。

链路层:负责将数据封装成帧,将网络层的IP数据报再加上帧头、帧尾。帧头里是源MAC地址,目的MAC地址,以及上一层网络层的协议、帧尾里面则是校验码用于数据校验。

物理层:负责将收集到的数字信号转变为物理信号

各层之间的协议:

TCP头里面的控制位:

URG:(URGent) 紧急:当 URG = 1 ,表示紧急指针字段有效,告诉系统这个报文段中有紧急的数据 。发送方TCP就把紧急数据放在本报文数据的最前面,紧急数据后面仍然是普通数据,配合紧急指针字段使用,表示 紧急数据到哪里结束。

ACK(ACKnowlegment) 确认: 仅当 ACK = 1 ,此字段才有效,TCP规定,在建立连接之后 ,所传送的数据报文ACK都要置为1 。

PUSH(push) 推送 :这个字段经常在进行可交互式的应用程序中使用比较多 ,在两个应用进程进行通信的时候,用户希望在键入一个命令之后,能够立即得到对方的响应。这时,发送方TCP就可将PUSH 置为 1 。发送方TCP就会立即创建一个报文段, 接收方TCP收到PUSH = 1的报文段,就尽快的交付给应用进程,不等待缓存满了在提交给应用进程 。

RST复位:当RST = 1时,表明TCP连接出现了严重的错误(由于主机奔溃,或其他原因),必须释放连接,然后在重新建立连接。

SYN(同步):在建立连接时使用来同步序号,当SYN = 1 ,而ACK = 0 时,表明这是一个请求连接报文, 如果对方同意连接,则在响应的报文段中使SYN = 1 和 ACK = 1 。

FIN (中止): 用来释放连接 ,当数据发送完毕之后,就将FIN = 1 ,表示要求释放连接。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值