编程词典
明日图书
明日软件
用户注册
用户登录
站内
  当前位置:编程词典服务网 >> 编程词典社区论坛 >> TCP/IP协议
共有回复1条  每页10条  第1页/共1页  首页  上页  下页  尾页
1
  · TCP/IP协议

用户:  大麦
发帖:  430 篇
作品:  0 个
回复:  110 篇
技术分:  1160 分
等级:  
注册:  2010-05-11 09:09:40



发表于:2010-07-13 15:31:05
          楼主

TCP/IP协议
TCP/IP(Transmission Control Protocal/Internet Protocal,传输控制协议/网际协议)协议是互联网上最流行的协议,它能够实现互联网上不同类型操作系统的计算机相互通信。对于网络开发人员,必须了解TCP/IP协议的结构。TCP/IP协议将网络分为4层,分别对应于OSI参考模型的7层结构。表1列出了TCP/IP协议与OSI参考模型的对应关系。
表1                    TCP/IP协议结构层次

TCP/IP协议

OSI参考模型

应用层(包括TelnetFTPSNTP协议)

会话层、表示层和应用层

传输层(包括TCPUDP协议)

传输层

网络层(包括ICMPIPARP等协议)

网络层

数据链路层

物理层和数据链路层


从表1中可以发现,TCP/IP协议不是单个协议,而是一个协议簇,它包含有多种协议,其中主要的协议有网际协议(IP)和传输控制协议(TCP)等。下面给出TCP/IP主要协议的结构。
(1)TCP协议
传输控制协议TCP是一种提供可靠数据传输的通行协议,它是TCP/IP体系结构中传输层上的协议。在发送数据时,应用层的数据传输到传输层,加上TCP的首部,数据就构成了报文。报文是网际层IP的数据,如果再加上IP首部,就构成了IP数据报。TCP协议C语言数据描述如下:
typedef struct HeadTCP {
  WORD   SourcePort; //16位源端口号
  WORD   DePort;  //16位目的端口
  DWORD  SequenceNo; //32位序号
  DWORD  ConfirmNo; //32位确认序号
  BYTE   HeadLen;  //与Flag为一个组成部分, 首部长度,占4位,保留6位,6位标识,共16位
  BYTE   Flag;
  WORD   WndSize;      //16位窗口大小
  WORD   CheckSum; //16位校验和
  WORD   UrgPtr;  //16位紧急指针
} HEADTCP;
(2)IP协议
IP协议又称为网际协议。它工作在网际层,主要提供无链接数据报传输。IP协议不保证数据报的发送,但最大限度的发送数据。IP协议C语言数据描述如下:
typedef struct HeadIP {
  unsigned char  headerlen:4;    //首部长度,占4位
        unsigned char  version:4;     //版本,占4位
        unsigned char  servertype;    //服务类型,占8位,即1个字节
        unsigned short totallen;      //总长度,占16位
        unsigned short id;     //与idoff构成标识 ,共占16位,前3位是标识,后13位是片偏移
        unsigned short idoff;
        unsigned char  ttl;            //生存时间 ,占8位
        unsigned char  proto;   //协议,占8位
        unsigned short checksum;  //首部检验和,占16位 
        unsigned int   sourceIP;       //源IP地址,占32位
        unsigned int   destIP;         //目的IP地址,占32位
}HEADIP;
 提示:在IP数据包结构中,第一个成员和第2个成员各占4位,也就是半个字节。我们知道为对象分配空间最小单位是1个字节,为了描述IP数据包中的成员,我们在定义数据包结构时使用了位域,具体指定每一个成员占用的位数。
(3)ICMP协议
ICMP协议又称为网际控制报文协议。它负责网络上设备状态的发送和报文检查,可以将某个设备的故障信息发送到其他设备上。ICMP协议C语言数据描述如下:
typedef struct HeadICMP {
  BYTE Type;    //8位类型
  BYTE Code;    //8位代码
  WORD ChkSum;     //16位校验和
} HEADICMP;
(4)UDP协议
用户数据报协议UDP是一个面向无连接的协议,采用该协议,两个应用程序不需要先建立连接,它为应用程序提供一次性的数据传输服务。UDP协议不提供差错恢复,不能提供数据重传,因此该协议传输数据安全性略差。UDP协议C语言数据描述如下:
typedef struct HeadUDP {
  WORD SourcePort;   //16位源端口号
  WORD DePort;    //16位目的端口
  WORD Len;    //16为UDP长度
  WORD ChkSum;   //16位UDP校验和
} HEADUDP;

 

本帖赏分:0 分   回复数:1 篇     
修改   删除   引用   回复
  · reply

用户:  美若天成
发帖:  0 篇
作品:  0 个
回复:  3 篇
技术分:  36 分
等级:  学员
注册:  2010-11-10 17:07:06



回复于:2010-11-10 17:20:02
         1 楼
哦,这个直接可以写成一个数据结构的啊!

看tcp协议的时候就有一些定义了,不过现在一看起来就知道,为什么要看理论了。

tcp/ip协议详解 还是不错的
修改   删除   引用
共有回复1条  每页10条  第1页/共1页  首页  上页  下页  尾页
1
吉林省明日科技有限公司提供技术支持. 
Copyright © 1999-2008 吉林省明日科技有限公司. 吉ICP备10002740
当前时区 GMT+8, 今天是 
刷新页面 - 关于我们 - 设为首页