互联网协议控制块详解:UDP与TCP的PCB结构
需积分: 50 121 浏览量
更新于2024-08-06
收藏 27.27MB PDF 举报
"协议控制块-jpeg标准的中文文档pdf"
在计算机网络中,协议控制块(Protocol Control Block,PCB)是一种重要的数据结构,用于存储网络协议层所需的各种信息。第22章主要讨论了在JPEG标准框架下,如何利用PCB来管理和控制网络通信,特别是针对UDP和TCP这两种主要的传输协议。
PCB被设计用来存储Internet协议(如IP)和传输层协议(如TCP和UDP)所需的多种信息。对于无连接的UDP,所有端点所需的信息都能在Internet PCB中找到,因为UDP没有单独的控制块。而TCP则有其特定的TCP控制块,用于维护每个连接的详细状态,如序号、窗口大小、重传次数等。
在Net/3体系结构中,Internet PCB包含了所有UDP和TCP端点共有的信息,如外部和本地IP地址、端口号、IP首部原型以及IP选项。此外,它还包含一个指向目的地址路由表入口的指针,以便进行数据包的转发。
当创建一个socket或通过accept函数建立连接时,系统会生成一个file结构和一个socket结构。socket结构中包含了与之关联的PCB的指针,反之PCB也包含了对socket结构的指针。对于TCP,除了Internet PCB之外,还有一个专门的TCP控制块(tcp_cb结构),通过指针链接到Internet PCB上。在UDP中,由于没有TCP那样的连接状态,所以它的PCB中的某些特定指针为空。
图22-1展示了PCB与其他数据结构(如file和socket)的关系,以及它们如何组成端口对(外部IP和端口号,以及本地IP和端口号)。此外,UDP和TCP使用双向链表通过指针i_n_next和i_n_prev管理所有的Internet PCB。
在实现TCP/IP协议时,不同的协议层会根据需要使用PCB。原始IP虽然也使用PCB,但它并不需要端口号成员。原始IP仅使用两个函数:in_pcballoc分配PCB,in_pcbdetach释放PCB。原始IP的具体实现将在第32章中详细讨论。
这一章还强调了PCB作为传输层数据结构的重要性,指出TCP、UDP和原始IP都会使用PCB,而IP、ICMP或IGMP等较低层次的协议则不直接依赖于PCB。
在第1章的概述中,介绍了伯克利联网程序代码的基本情况,包括源代码的表示方式、历史背景、编程接口以及一个简单的UDP用户程序示例,这个示例展示了数据报从发送到接收的整个过程,同时也揭示了许多核心数据结构和概念,为后续章节的学习奠定了基础。源代码的组织和在整个系统中的位置也在本章末尾进行了说明。
2021-10-03 上传
2013-06-10 上传
2022-09-20 上传
2020-06-16 上传
313 浏览量
2020-03-20 上传
2022-04-17 上传
点击了解资源详情
点击了解资源详情
刘兮
- 粉丝: 26
- 资源: 3852
最新资源
- 高清艺术文字图标资源,PNG和ICO格式免费下载
- mui框架HTML5应用界面组件使用示例教程
- Vue.js开发利器:chrome-vue-devtools插件解析
- 掌握ElectronBrowserJS:打造跨平台电子应用
- 前端导师教程:构建与部署社交证明页面
- Java多线程与线程安全在断点续传中的实现
- 免Root一键卸载安卓预装应用教程
- 易语言实现高级表格滚动条完美控制技巧
- 超声波测距尺的源码实现
- 数据可视化与交互:构建易用的数据界面
- 实现Discourse外聘回复自动标记的简易插件
- 链表的头插法与尾插法实现及长度计算
- Playwright与Typescript及Mocha集成:自动化UI测试实践指南
- 128x128像素线性工具图标下载集合
- 易语言安装包程序增强版:智能导入与重复库过滤
- 利用AJAX与Spotify API在Google地图中探索世界音乐排行榜