- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
嵌入式Linux网络编程 OSI参考模型及TCP/IP参考模型 它是基于国际标准化组织(ISO)的建议发展起来的,从上到下共分为7层:应用层、表示层、会话层、传输层、网络层、数据链路层及物理层。这个7层的协议模型虽然规定得非常细致和完善,但在实际中却得不到广泛的应用,其重要的原因之一就在于它过于复杂。但它仍是此后很多协议模型的基础,这种分层架构的思想在很多领域都得到了广泛的应用。 OSI参考模型及TCP/IP参考模型 与此相区别的TCP/IP协议模型从一开始就遵循简单明确的设计思路,它将TCP/IP的7层协议模型简化为4层,从而更有利于实现和使用。TCP/IP的协议参考模型和OSI协议参考模型的对应关系如下图所示。 OSI参考模型及TCP/IP参考模型 OSI参考模型及TCP/IP参考模型 网络接口层:负责将二进制流转换为数据帧,并进行数据帧的发送和接收。要注意的是数据帧是独立的网络信息传输单元。 ? 网络层:负责将数据帧封装成IP数据报,并运行必要的路由算法。 ? 传输层:负责端对端之间的通信会话连接与建立。传输协议的选择根据数据传输方式而定。图10.2 TCP/IP协议族 ? 应用层:负责应用程序的网络访问,这里通过端口号来识别各个不同的进程。 OSI参考模型及TCP/IP参考模型 OSI参考模型及TCP/IP参考模型 虽然TCP/IP名称只包含了两个协议,但实际上,TCP/IP是一个庞大的协议族,它包括了各个层次上的众多协议,图10.2列举了各层中一些重要的协议,并给出了各个协议在不同层次中所处的位置如下。 ? ARP:用于获得同一物理网络中的硬件主机地址。 ? MPLS:多协议标签协议,是很有发展前景的下一代网络协议。 ? IP:负责在主机和网络之间寻址和路由数据包。 ? ICMP:用于发送报告有关数据包的传送错误的协议。 ? IGMP:被IP主机用来向本地多路广播路由器报告主机组成员的协议。 ? TCP:为应用程序提供可靠的通信连接。适合于一次传输大批数据的情况。并适用于要求得到响应的应用程序。 ? UDP:提供了无连接通信,且不对传送包进行可靠的保证。适合于一次传输少量数据,可靠性则由应用层来负责。 TCP和UDP 在此主要介绍在网络编程中涉及到的传输层TCP和UDP协议。 TCP (1)概述 同其他任何协议栈一样,TCP向相邻的高层提供服务。因为TCP的上一层就是应用层,因此,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。应用程序通过编程调用TCP并使用TCP服务,提供需要准备发送的数据,用来区分接收数据应用的目的地址和端口号。 通常应用程序通过打开一个socket来使用TCP服务,TCP管理到其他socket的数据传递。可以说,通过IP的源/目的可以惟一地区分网络中两个设备的关联,通过socket的源/目的可以惟一地区分网络中两个应用程序的关联。 TCP (2)三次握手协议 TCP对话通过三次握手来初始化的。三次握手的目的是使数据段的发送和接收同步,告诉其他主机其一次可接收的数据量,并建立虚连接。 下面描述了这三次握手的简单过程。 ? 初始化主机通过一个同步标志置位的数据段发出会话请求。 ? 接收主机通过发回具有以下项目的数据段表示回复:同步标志置位、即将发送的数据段的起始字节的顺序号、应答并带有将收到的下一个数据段的字节顺序号。 ? 请求主机再回送一个数据段,并带有确认顺序号和确认号。 TCP TCP数据报头的格式 源端口、目的端口:16位长。标识出远端和本地的端口号。 TCP数据报头的格式 序号:32位长。标识发送的数据报的顺序。 ? 确认号:32位长。希望收到的下一个数据报的序列号。 ? TCP头长:4位长。表明TCP头中包含多少个32位字。 ? 6位未用。 ? ACK:ACK位置1表明确认号是合法的。如果ACK为0,那么数据报不包含确认信息,确认字段被省略。 ? PSH:表示是带有PUSH标志的数据。接收方因此请求数据报一到便可送往应用程序而不必等到缓冲区装满时才传送。 ? RST:用于复位由于主机崩溃或其他原因而出现的错误的连接。还可以用于拒绝非法的数据报或拒绝连接请求。 ? SYN:用于建立连接。 ? FIN:用于释放连接。 ? 窗口大小:16位长。窗口大小字段表示在确认了字节之后还可以发送多少个字节。 ? 校验和:16位长。是为了确保高可靠性而设置的。它校验头部、数据和伪TCP头部之和。 ? 可选项:0个或多个32位字。包括最大TCP载荷,窗口比例、选择重发数据报等选项。 UDP (1)概述 UDP即用户数据报协议,它是一种无连接协议,因此不需要像TCP那样通过三次握手来建立一个连接。同时,
原创力文档


文档评论(0)