互联网协议控制块-PCB详解与UDP/TCP的关系
需积分: 50 13 浏览量
更新于2024-08-05
收藏 36.37MB PDF 举报
"协议控制块-现代微分几何与Mathematica的应用"
在计算机网络中,协议控制块(Protocol Control Block, PCB)是一个重要的概念,它用于存储和管理网络协议层所需的各种信息。在TCP/IP协议栈中,PCB主要用于UDPI(User Datagram Protocol)和TCP(Transmission Control Protocol)的插座(socket)操作。根据标题和描述,本章主要讨论的是协议控制块在网络协议中的应用,特别是与UDP和TCP相关的PCB。
TCP/IP协议族中,Internet PCB(Internet Protocol Control Block)是一个通用的数据结构,用于存储UDP和TCP端点共享的信息,如外部和本地IP地址、端口号、IP头部原型和IP选项等。TCP控制块则包含更具体连接状态的信息,比如两个方向的序列号、窗口大小、重传计数等,这些都是TCP为了维护面向连接的服务所必需的。
在Net/3系统中,当创建一个socket或者通过accept函数建立连接时,会生成file结构和socket结构。socket结构的类型依据协议的不同而变化,UDP是SOCK_DGRAM,TCP是SOCK_STREAM。接着,协议层会被调用,对于UDP,会创建一个i npcb结构(Internet PCB)并与socket结构关联;对于TCP,除了创建i npcb,还会创建tcpcb结构(TCP控制块),并用指针连接这两个结构。
在图22-1中,展示了PCB与其他数据结构的关系。一个关键点是,UDP的i np_pcb成员为空,因为UDP不需要维护自己的控制块。而TCP的i np_ppcb和t_inpcb成员则链接到i npcb上,形成一个双向链表,方便管理所有Internet PCB。此外,i npcb结构中还有i np_faddr到i np_lport等成员,这些字段用于标识端点的IP地址和端口号。
TCP和UDP通过i np_next和i np_prev指针维护所有Internet PCB的链表。全局的i npcb结构(如udb和tcb)用于管理这些链表,其中包含下一个和前一个指针,以及本地端口号的分配。原始IP(raw IP)虽然也使用PCB,但不使用端口号,并且仅使用两个函数:in_pcballoc分配PCB,in_pcbdetach释放PCB。原始IP的详细讨论将在第32章中进行。
协议控制块是TCP/IP协议栈中不可或缺的部分,它为UDP和TCP提供必要的信息存储空间,使得网络通信得以高效和可靠地进行。在实现和理解网络协议时,了解和掌握PCB的工作原理和使用方法至关重要。
275 浏览量
2011-02-24 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
点击了解资源详情
黎小葱
- 粉丝: 24
- 资源: 3959
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常