购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.4 传输层

传输层为应用层提供会话和数据报通信服务。传输层的两个重要协议是TCP和UDP。

1.4.1 TCP

TCP提供一对一的、面向连接的高可靠(数据无丢失、数据无失序、数据无错误、数据无重复)通信服务,它能建立连接,对发送的数据报进行排序和确认,并恢复在传输过程中丢失的数据报。TCP会把应用层数据加上一个TCP报头,组成TCP报文段。TCP报文段的报头(或称为TCP头部)的格式如图1-6所示。

015-1

图1-6

如果用Java语言来定义,可以这样编写:

public  class _TCP_HEADER                  //TCP报头定义,共20字节
{
    short  sSourPort;                      //源端口号16bit
    short  sDestPort;                      //目的端口号16bit
    unsigned int  uiSequNum;               //序列号32bit
    unsigned int  uiAcknowledgeNum;        //确认号32bit
    short  sHeaderLenAndFlag;        //前4位为TCP报头长度,中6位保留,后6位为标志位
    short  sWindowSize;                    //窗口大小16bit
    short  sCheckSum;                      //校验和16bit
    short  surgentPointer;                 //紧急指针16bit
}

1.4.2 UDP

与TCP不同,UDP提供一对一或一对多的、无连接的不可靠通信服务。它的协议头相对比较简单,如图1-7所示。

016-1

图1-7

如果用Java语言来定义,可以这样编写: nHqLS5hVoBDEBcsxLoNA/7TyhOGkjZM3RfckALoV5nuIHhNH+9HQFXzaAPW2D60o

public  class _UDP_HEADER                 //UDP报头定义,共8字节
{
    unsigned short m_usSourPort;          //源端口号16bit
    unsigned short m_usDestPort;          //目的端口号16bit
    unsigned short m_usLength;            //报文段长度16bit
    unsigned short m_usCheckSum;          //校验和16bit
}
点击中间区域
呼出菜单
上一章
目录
下一章
×