博客
关于我
传输层协议
阅读量:280 次
发布时间:2019-03-03

本文共 995 字,大约阅读时间需要 3 分钟。

文章目录

1. TCP协议介绍

TCP协议,即控制传输协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。

1.1 TCP/UDP协议族的传输层协议

  1. TCP 传输控制协议
  2. UDP 用户数据报协议
    TCP/UDP属于5层模型的传输层

TCP:是面向连接的,可靠的进程到进程通信的协议;

TCP提供全双工服务,即数据可在同一时间双向传输,每一个TCP都能发送缓存和接收缓存,用来临时存储数据。

UDP:协议是无连接的,不保证可靠性的传输协议。即发送端不关心发送的数据是否到达目的主机,数据是否出错,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障,但它传输数据速度更快,效率更高。

1.2 TCP报文格式

在这里插入图片描述

序号:发送端为每个字节进行编号,便于接收端正确重组。当TCP从进程接收数据字节时,把它们分片成数据段存储在发送缓存中,并对每一个字节进行编号。当数据到达目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性。

确认号:对发送端的确认信息,接收端响应消息时将会用它来告诉发送端这个序号之前的数据段都已经收到,如确认号是X,就是表示前x-1个数据段都已经收到。

首部长度:用它可以确定TCP首部数据结构的字节长度。一般情况下TCP首部是20字节,但首部长度最大可以扩展为60字节。

控制位:

URG:紧急位,紧急指针有效位;
ACK:确认位,只有当ACK为1时,确认序号字段才有效;当ACK为0时,确认号字段无效。
PSH:急迫位,当标志位为1时,要求接收方尽快将数据送达应用层
SYN:同步(连接)位,同步序号,TCP需要建立连接时将这个至设为1
FIN:断开位,当TCP完成数据传输需要断开连接时,提出断开连接的一方将这个值设为1。
窗口大小:说明本地可接收数据段的数目。这个值的大小时可变的。

1.3 TCP建立连接的三次握手

在这里插入图片描述

1.4 TCP断开连接的四次挥手

在这里插入图片描述

2 UDP协议

UDP:协议是无连接的,不保证可靠性的传输协议。即发送端不关心发送的数据是否到达目的主机,数据是否出错,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障,但它传输数据速度更快,效率更高。


2.1 UDP报文首部格式

在这里插入图片描述

UDP长度:用来指出UDP的棕长度,为首部加上数据
校验和:用来完成对UDP数据的差错校验,它是UDP协议提供的唯一的可靠机制。

转载地址:http://pwll.baihongyu.com/

你可能感兴趣的文章
Python循环语句代码逐行详解:while、for、break和continue
查看>>
整型关键字的散列映射
查看>>
多位水仙花数-python(出现运行超时?不妨用减法计算)
查看>>
地下迷宫探索(后两个测试点无法通过?这里有你想要的答案)
查看>>
城市间紧急救援(dijkstra算法)
查看>>
小白看完都会了!阿里云大师深入拆解Java虚拟机,看完这一篇你就懂了
查看>>
【IT之路】FAQ-Hibernate报错:表不存在
查看>>
VBA之正则表达式(19)-- 相对引用转绝对引用
查看>>
巧用VBA统一数字单位
查看>>
Transpose实现数组行列转置的限制
查看>>
[Golang]golang中自动锁的实现
查看>>
用float/double作为中转类型的“雷区”
查看>>
golang中interface的一些语法缺陷的改进
查看>>
vue-router路由 学习笔记
查看>>
数据结构与算法之栈
查看>>
【数据库】第七章课后题
查看>>
第四章 串、数组和广义表 —— BF算法和KMP算法
查看>>
[选拔赛1]花园(矩阵快速幂),JM的月亮神树(最短路),保护出题人(斜率优化)
查看>>
DLA:一种深度网络特征融合方法
查看>>
leetcode114(二叉树展开为链表)
查看>>