网络协议结构

TCP/IP的运输层

  TCP/IP这一层提供了两个主要的协议:传输控制协议(冗P)和用户数据报协议(UDP),另外还有一些别的协议,例如用于传送数字化语音的NTCP/IP的运输层 VP协议。

1.传输控制协议TCP

TCP提供的是一种可靠的数据流服务。当传送受差错干扰的数据,或基础网络故障,或网络负荷太重而使网际基本传输系统(元连接报文递交系统)不能正常工作时,就需要通过其它的协议来保证通信的可靠。TCP就是这样的协议,它对应于OSI模型的运输层,它在IP协议的基础上,提供端到端的面向连接的可靠传输。
TCP采用"带重传的肯定确认"技术来实现传输的可靠性。简单的"带重传的肯定确认"是指与发送方通信的接收者,每接收一次数据,就送回一个确认报文,发送者对每个发出去的报文分组都留一份记录,等到收到确认之后再发出下一个报文分组。发送者发出一个报文分组时,启动一个计时器,若计时器计数完毕,确认还未到达,则发送者重新发送该报文分组。
  简单的确认重传严重浪费带宽,TCP还采用一种称之为"滑动窗口"的流量控制机制来提高网络的吞吐量,窗口的范围决定了发送方发送的但未被接收方确认的数据报的数量。每当接收方正确收到一则报文时,窗口便向前滑动,这种机制使网络中未被确认的数据报数量增加,提高了网络的吞吐量。
  TCP通信建立在面向连接的基础上,实现了一种"虚电路"的概念。双方通信之前,/IP在先建立一条连接,然后双方就可以在其上发送数据流。这种数据交换方式能提高效率,但事先建立连接和事后拆除连接需要开销。TCP连接的建立采用三次握手的过程,整个过程由发送方请求建立连接、接收方确认、发送方再发送一则关于确认的确认三个过程组成。

2.用户数据报协议mp

 

  用户数据报协议是对IP协议组的扩充,它增加了一种机制,发送方使用这种机制可以区分一台计算机上的多个接收者。每个UDP报文除了包含某用户进程发送的数据外,还有报文目的端口的编号和报文源端口的编号,从而使UDP软件可以把报文递送给正确的接收者,然后接收发出一个应答。由于UDP的这种扩充,使得在两个用户进程之间递送数据报成为可能。

  UDP是依靠IP协议来传送报文的,因而它的服务和IP一样是不可靠的。这种服务不用确认、不对报文排序、也不进行流量控制,UDP报文可能会出现丢失、重复、失序等现象。

时间: 2024-10-05 04:06:18

网络协议结构的相关文章

网络协议结构体-02

/*********************************************/         #define ETHER_ADDR_LEN 6 //NIC物理地址占6字节       #define MAXDATA 10240       /* 数据包中的TCP包头,IP包头,UDP包头,ARP包,Ethernet包等.     以及各种表.路由寻址表,地址解析协议表DNS表等     */ #define ETHERTYPE_IP 0x0800   //IP Protocal

网络协议结构体

// i386 is little_endian.       #ifndef LITTLE_ENDIAN       #define LITTLE_ENDIAN   (1)   //BYTE ORDER       #else       #error Redefine LITTLE_ORDER       #endif //Mac头部,总长度14字节       typedef struct _eth_hdr      {          unsigned char dstmac[6];

编程思想:如何设计一个好的通信网络协议

当网络中两个进程需要通信时,我们往往会使用 Socket 来实现.Socket 都不陌生.当三次握手成功后,客户端与服务端就能通信,并且,彼此之间通信的数据包格式都是二进制,由 TCP/IP 协议负责传输. 当客户端和服务端取得了二进制数据包后,我们往往需要『萃取』出想要的数据,这样才能更好的执行业务逻辑.所以,我们需要定义好数据结构来描述这些二进制数据的格式,这就是通信网络协议.简单讲,就是需要约定好二进制数据包中每一段字节的含义,比如从第 n 字节开始的 m 长度是核心数据,有了这样的约定后

TCP/IP网络协议

什么是协议?协议就是双方约定的规则.同理,在网络中,计算机之间的相互通信需要共同遵守一定的规则,这些规则就称为网络协议. 下面是我百度的定义: TCP/IP是“transmission Control Protocol/Internet Protocol”的简写,中文译名为传输控制协议/互联网络协议)协议, TCP/IP(传输控制协议/网间协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据往来格式以及传送方式.TCP/IP是INTERNET的基础协议,也

小解网络协议

网络协议为计算机网络中进行数据交换而建立的规则.标准或约定的集合. 在一台计算机中,我们都知道通过cmd命令输入命令:ipconfig/all,就可知道本台计算机的IP地处,物理地址,网关信息,DNS(域名服务器)等信息. 根据计算机网络中数据的传输流程,可大致分为几个层次.金字塔形. 第一层:最顶层即为第一层,可俗称人类层.在这个层次人类可以输入任何想要输入计算机的信息. 第二层:应用层.即应用程序. 第三层:传输层.此层关键之处在于端口,如果把IP地址比作一间房子 ,端口就是出入这间房子的门

[国嵌攻略][068][tftp网络协议实现]

IP协议结构 UDP协议结构 TFTP协议结构 TFTP端口 读写请求端口: 69 其他请求端口:1024~65535 主程序 /******************************************************************** *名称:menu *参数: * none *返回: * none *功能:菜单命令 *********************************************************************/ voi

TFTP网络协议分析

TFTP网络协议分析 周学伟 文档说明:所有函数都依托与两个出口,发送和接收. 1:作为发送时,要完成基于TFTP协议下的文件传输,但前提是知道木的PC机的MAC地址,因为当发送TFTP请求包时必须提供目的主机的MAC地址.则提供串口srcureCRT控制台,首先进行ARP请求包的发送,收到来自客户端的ARP应答包时,提取出目的主机的MAC地址,然后在发送TFTP请求包,等到目的主机返回数据报文后,文件传输即可开始,此过程,可用wireshark抓包工具进行检测. 2:作为接收时,可在DM900

网络协议分层(七层、四层)

一.概述 网络协议设计者不应当设计一个单一.巨大的协议来为所有形式的通信规定完整的细节,而应把通信问题划分成多个小问题,然后为每一个小问题设计一个单独的协议.这样做使得每个协议的设计.分析.时限和测试比较容易.协议划分的一个主要原则是确保目标系统有效且效率高.为了提高效率,每个协议只应该注意没有被其他协议处理过的那部分通信问题:为了主协议的实现更加有效,协议之间应该能够共享特定的数据结构:同时这些协议的组合应该能处理所有可能的硬件错误以及其它异常情况.为了保证这些协议工作的协同性,应当将协议设计

【驱动】网卡驱动·linux内核网络分层结构

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://liucw.blog.51cto.com/6751239/1221140 Preface   Linux内核对网络驱动程序使用统一的接口,并且对于网络设备采用面向对象的思想设计. Linux内核采用分层结构处理网络数据包.分层结构与网络协议的结构匹配,既能简化数据包处理流程,又便于扩展和维护. 内核网络结构 在Linux内核中,对网络部分按照网络协议层.网络设备层.设备驱动功能层