1、C++游戏服务器—IP详解

1、C++游戏服务器—IP详解,第1张

目录
  • 一、OSI模型
  • 二、IP模型
  • 三、数据进入协议栈的封装
  • 四、IP协议特点
  • 五、Ip header格式

一、OSI模型
  • OSI七层模型:开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架
  • OSI模型总结:采用分层的思想,这是比较好的优点;但是模型过于复杂了
二、IP模型
  • Application:应用层
  • Transport:传输方式(TCP\UDP)
  • Internet:IP层
  • Link:网线
  • 实例理解IP模型的数据传递
    • ①.A应用需要将数据传输给B
    • ②.A首先将数据进行打包
    • ③.然后A选择Transport的方式TCP/UDP(假设有空运和海运的方式选择)
    • ④.之后将运输的东西放到Internet(假设是邮局或快递集中点)
    • ⑤.最后快递员通过Link(相当于交通工具:汽车、电动车等)
三、数据进入协议栈的封装
  • 需求假设:有一个应用程序,产生的一部分数据,想采用UDP的方式发送
    • ①.Data进过Transport层,添加了UDP header
    • ②.进过Internet层,添加了IP header
    • ③.在Link层会增加Frame header(包头)和Frame footer(包尾)
  • Frame footer的作用
    • Link的Frame footer一般是CRC检查
    • 发送方根据Frame data计算出校验值保存到Frame footer中
    • 接收方根据Frame footer中的检验值来判断Frame data是否正确
  • Frame data的长度要求:
    • 一般来说最小46字节,不足填0补充
    • 一般来说以太网的传输要求最大不超过1500字节(当传输的字节大于1500字节的时候,在IP层就要进行分片,就是将数据报分成若干个片,每个片重新在Link上打包)
  • MTU概念:MTU是Maximum Transmission Unit的缩写,意思是网络上传送的最大数据包;MTU的单位是字节,大部分网络设备的MTU都是1500
四、IP协议特点
  • 不可靠(unreliable):不能保证IP数据包能够成功的到达目的地
  • 无连接(connectionlesss):IP协议不维护任何数据传输后续的状态,通俗的讲就是每个数据包发送和处理都是相互独立的;举例说明 —— 发送方先发送A数据包,再发送B数据包,但是接收方有可能先收到B数据包,然后才收到A数据包
五、Ip header格式
  • Big Endian:网络数据都是按照Big Endian来传送的
  • C语言实现检测当前机器是大端模式还是小端模式
// 一个32位四字节的整数值,例如1,实际的计算机编码表示是 0x00000001
// 小端系统中在内存中的表示是 01 00 00 00
// 大端系统中在内存中的表示是 00 00 00 01
union EndianTest()
{
    int8_t u[4];
    int32_t i;
};

static bool isLittleEndianSystem()
{
    EndianTest et;
    et.i = 1;
    return et.u[0] == 1;//u的第1个字节是不是等于1
}

// *** 作系统方法判断
static bool isLittleEndianOs(){
	return __BYTE_ORDER == __LITTLE_ENDIAN;
}

  • 一个IP数据的组成:首部和数据
    • 首部的前一部分是固定长度,共20字节,是所有IP数据包必须具有的
    • 在首部的固定部分的后面是一些可选字段,其长度是可变的
  • 4位版本:指 IP 协议的版本。目前 IP 协议版本号有IPv4和IPv6
  • 生存时间:占8位,记为TTL(Time To Live),指示数据报在网络中可通过的路由器数的最大值。每经过一个路由器,TTL值就-1,如果等于0了,就直接将这个数据报抛弃。一般值为256或者128

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1325174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-12
下一篇 2022-06-12

发表评论

登录后才能评论

评论列表(0条)

保存