IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 计算机网络之传输层(未完待续) -> 正文阅读

[网络协议]计算机网络之传输层(未完待续)

概述

功能:为运行于不同主机上的各个应用程序进程之间提供逻辑通信(logical communication),隐藏通信子网细节,是完全的端到端

传输层协议运行在端系统(end systems)中
发送端: 将应用程序数据(messages)分割为(segments)再递交给网络层
接收端: 重组各messages再提交给应用层
应用、传输及网络层逻辑关系(注意地址问题)

PDU(协议数据单元)的嵌套关系

在这里插入图片描述

(TPDU-传输层PDU)请添加图片描述

为何需要传输层?
1.传输层提供的服务
面向连接: TCP(可靠)
面向非连接:UDP(不可靠)
网络层的服务?
为何需要一个重复的传输层?
网络层: 是在主机hosts之间的逻辑通信
传输层:是在主机的进程processes之间的逻辑通信,即可以让多个网络应用同时在host上运行
它使用并依靠网络层的服务,同时当通信子网出现问题时可以重新建立端到端的服务,即增强了网络层的服务

传输层服务原语

服务原语(service Primitives)可看作为一组事先定义好的,用于通信的例程(规范、程序或函数等)
开发人员通过调用传输层服务原语构建端到端的通信,而隐藏了各种不同的网络层服务原语的区别
在这里插入图片描述

传输层上的多路复用和解多路复用

1.多路复用(multiplexing):指收集不同应用程序进程的数据,将这些数据封装上相应的头部形成段(segments),将这些段递交给网络层的过程。图示
2.解多路复用(demultiplexing):指把收到的传输层段中的数据提交给相应的应用程序进程的过程

在这里插入图片描述

如何解多路复用

主机接收到IP包
每个包都有 source IP address,destination IP address
每个都装载一个 transport-layer segment
每个segment都有source,destination port number
传输层实体将用port numbers决定segment该发送给哪个进程(socket)

在这里插入图片描述

(头部16位:源端口号+目的端口号)
端口号说明

端口号说明
0~1023保留端口号,一般给服务器端,由超级用户设置(可更改,但需要认可)
1024~49151注册端口号,为避免冲突,分配给各组织或公司
49152~65535私有端口号,任意使用
参考(RFC1700):
http://www.iana.org/assignments/port-numbers
Windows下C:\WINDOWS\system32\drivers\etc\services
Linux/Unix下:/etc/services

说明:
同一台主机上可以有多个进程同时访问该服务端口(如迅雷等)

在这里插入图片描述

面向非连接协议: UDP

用户数据报协议
1.是最简单的一个 Internet transport protocol
2.它提供所谓的“best effort(尽力而为)” 服务, 没有流量控制和差错控制,UDP的segments有可能:
1)丢失
2)损坏
3)不按顺序提交给应用程序
3.它是面向非连接的:
在发送和接收方没有所谓的三次握手
每个UDP segment都将被独立处理 ,前后UDP segment互相没有关系

UDP头部格式

在这里插入图片描述
总结:UDP:不可靠、简单、高效的用户数据报协议)

1.可用于流媒体(streaming multimedia)应用程序
1)允许丢失、时间敏感
2)如Internet电台、视频点播等。请参阅RTP
(实时传输协议)(Real-time Transport Protocol)
2.其他UDP应用(C/S模式)
1)DNS(UDP.cap)、DHCP
2)SNMP
3)RPC(Remote Procedure Call)
3.建立在UDP上的可靠传输由应用层(应用程序)保证

可靠传输原理

在这里插入图片描述
在这里插入图片描述

建立连接-三次握手
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

释放连接(四次握手/挥手?)

传输层释放连接
1.方式
非对称释放:数据可能丢失,TCP不采用
对称释放:将连接看着两个单向连接,采用询问方式。是否一定能正确释放?

采用三次握手释放连接也不能完全保证正确释放,但一般情况下已经足够了
在这里插入图片描述
在这里插入图片描述

面向连接协议: TCP-传输控制协议

TCP协议特性
1.面向连接
2.即使在不可靠的网络(Internet)上,都能提供可靠的、端到端字节流通信
3.能够动态的适应各种网络(拓扑)、带宽、延迟、分组尺寸等
3.如果出错,应有足够的健壮性(Robustness)
4.TCP连接是建立在两个Socket(端口)之间
5.一个TCP连接有且只能有两个端口,或者,两个端口之间只能有一个TCP连接,但一个端口(Socket)上可以有多个连接
7.TCP连接是面向字节流的,即,TCP将从上层得到的数据看作为无结构的字节流

如某进程交给TCP实体4个512B的报文,TCP发送实体可以组成如以下任意大小格式的段递交给IP层,由高层进行结构的区分(有助于提高传输效率)
4个512B的segments、2个1024B的segments、1个1448B和1个600B的segments

在这里插入图片描述

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-07 12:22:55  更:2021-12-07 12:23:37 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年7日历 -2024/7/8 10:00:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码