基础知识整理2

网络

TCP和UDP

tcp是一种面向连接的、可靠的、基于字节流的传输层通信协议。udp(用户数据报协议)传输层协议,提供面向操作的简单不可靠的非连接传输层服务,面向报文。

区别:

a.tcp是基于连接的,可靠性高;udp是基于无连接的,可靠性较低;

b.由于tcp是连接的通信,需要有三次握手、重新确认等连接过程,会有延时,实时性差;同时过程复杂,也使其易于被攻击;而udp无连接,无建立连接的过程,因而实时性较强,也稍安全;

c.在传输相同大小的数据时,tcp首部开销20字节;udp首部开销只有8个字节,tcp报头比udp复杂,故实际包含的用户数据比较少。tcp无丢包,故tcp开销大,udp开销较小;

d.每条tcp连接只能是点到点的;udp支持一对一、一对多、多对一、多对多的交互通信。

 

TCP的三次握手

第一次握手:客户端发送一个tcp的syn标志位置为1的包(连接请求),指明客户打算连接服务端的端口;SYN=1,seq=client-isn

第二次握手:当服务端收到连接请求之后,返回确认包(ack)应答,即将syn和ack标志同时致为1(授予连接),并为这次连接分配资源;SYN=1,ACK=1,seq=server-isn

第三次握手;客户端收到服务端的授予连接请求之后,再次发送确认包(ack)(syn标志位为0,ack标志位为1),并分配资源,这样tcp就建立连接了SYN=0,ACK=1,seq=client_isn+1

 

TCP和UDP的数据结构

TCP:

struct TCP_HEADER 
{
 short m_sSourPort;              // 源端口号16bit
 short m_sDestPort;              // 目的端口号16bit
 unsigned int m_uiSequNum;         // 序列号32bit
 unsigned int m_uiAcknowledgeNum;  // 确认号32bit
 short m_sHeaderLenAndFlag;        // 前4位:TCP头长度;中6位:保留;后6位:标志位
 short m_sWindowSize;            // 窗口大小16bit
 short m_sCheckSum;              // 检验和16bit
 short m_surgentPointer;           // 紧急数据偏移量16bit
}

UDP;

struct UDP_HEADER 
{
 short m_sSourPort;              // 源端口号16bit
 short m_sDestPort;              // 目的端口号16bit
 short m_size;                      //长度16bit
 short m_sCheckSum;              // 检验和16bit
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值