网络游戏服务器编程笔记一

时间:2022-09-14 19:46:06

大体也忘记是谁推荐给我的这本书了。

7层网络通信协议

在读大学的时候曾今无数次好奇过这玩意有没有用?

从下至上:
1. 物理层 (Phsical)
2. 数据链路层 (Data Link)
3. 网络层 (Network)
4. 传输层 (Transport)
5. 会话层 (Session)
6. 表示层 (Presentation)
7. 应用层(Application)

TCP/IP

DARPA模型
从下至上
1. 网络访问层 (Network Access)
2. 网络层 (Network)
3. 传输层 (Transport)
4. 应用层 (Application)

TCP/IP协议族

所谓TCP/TP并不单纯指TCP和IP两个协议,而是包括很多其他协议的一个网络协议的集合,称为协议族。

  1. IP
    Internet Protocol网间协议,负责主机间数据的路由和网络上数据的存储,同事为ICMP、TCP、UDP提供分组发送服务。用户金层通常不涉及这一层
  2. ARP
    Address Resolution Protocol地址解析协议,将网络地址映射到硬件地址
  3. RARP
    Reverse Address Resolution Protocol反向地址解析协议,将硬件地址映射到网络地址
  4. ICMP
    Internet Control Message Protocol网络控制报文协议,此协议处理信息和主机的差错和传送控制
  5. TCP
    Transmission Control Protocol提供给用户进程的可靠的面向连接的全双工字节流协议。它要为用户进程提供虚拟电路服务,并为数据可靠传输建立检查。大多数网络用户程序使用Tcp。
  6. UDP
    User datagram Protocol用户数据报协议,提供给用户进程的无连接协议。用于传输数据而不执行正确性检查。
  7. FTP
    File Tranfer Protocol文件传输协议,允许用户以稳健操作的方式与另一主机相互通信
  8. SMTP
    Simple Mail Transfer Protocol简易邮件传送协议
  9. TTP
    Telnet Terminal Protocol终端协议,孕育用户以虚拟终端方式访问远程主机。
  10. HTTP
    Hypertext Transfer Protocol超文本传输协议,用于传输超文本标记语言,也就是常说的网页。
  11. TFTP
    Tricial File Transfer Protocol简易文件传输协议,与FTP不同的是它使用UDP的69端口,一次可以穿越很多防火墙。

Socket套接字

核心结构

网络地址(IP) + 端口号(port)

种类

  1. SOCKET_STREAM(流socket)
    支持双向的、有序的、无重复的并且无记录边界的数据流,例如telnet、http等面向连接的可靠通信服务,使用TCP协议。
    Socket必须在发送数据之前与目的Socket取得一个连接,一旦建立了连接,socket就可以使用一个流借口,所有发送的信息都会在另一个端口以同样的顺序被接收。
  2. SOCKET_DRAG(数据报socket)
    支持双向的双向的数据流,但不保证是可靠的、有序、无重复的,用于无连接不可靠的通信,比如UDP。
    保留了记录边界。
    一个数据报是一个独立的单元,它包含了所有的本次投递的信息、目的地址和要发送的内容,这个模式下的Socket不需要连接一个目的Socket,它只是简单地投出shujubao.wulianjiede操作时快速和高效的,但数据安全性不高。

IP地址转换

每个网络接点有一个IP地址,IPV4是一个32整数(0~255,0~255,0~255,0~255),每一段为8位,4*8 = 32位,IPV6时一个128位整数
IP地址通常具体确定了一台计算机,称为一台主机,但一台主机可以有多个IP地址

DNS

Domain Name Service域名服务,将ASCII地址翻译成域名地址,或将域名地址翻译成ASCII地址。

字节转换

1. (Big Endian)高子节在前
MIPS和SPARC采用。网络上传输的数据统一采用Big Endian
2. (Little Endian)低字节在前
Intel的PC采用。