服务端学习(一)网络基础

发布于 2018-02-24  602 次阅读


Tcp/Udp Socket 对象

  • Socket 是操作系统提供给应用程序用来发送数据的对象
  • 从应用层调用Socket 发送给OS
  • OS将信息转发给网卡,从而实现与外界的通讯

Tcp: 可靠的数据传输协议
Udp:不可靠的数据传输协议


Tcp 传输过程

  1. Server针对Client开通一个Socket监听热线
    • 创建一个Tcp Socket
    • 调用OS API,让这个Socket监听到指定的端口上
    • 当客户端连接时,Socket会收到客户端的连接请求数据
    • 验证通过后,创建一个新的Socket与对应的客户端进行通讯
    • 关闭监听端口,再也无法接入新的Socket
    • 关闭与客户端连接的Socket,断开与客户端的连接
  2. Client向Server发送一个连接请求Socket
    • 创建一个Tcp Socket
    • 根据IP地质和端口,与指定的服务器进行连接确认
    • 连接成功以后可以使用Socket向服务器发送数据和接收数据
    • 主动关闭连接/被动关闭连接
  3. 可靠的数据收发协议
    • 发送数据:要收到对方的确认才算成功,确认后才会发送下一个
    • 接收数据:收到数据后,需要向对方发送一个确认,确认后才会接收下一个

    Tcp/IP协议栈:实现在OS底层,此协议栈保证了Tcp的可靠性,如果迟迟没有收到客户端的ACK请求,在一定时间内会针对此条信息重发,直到认为其掉线。因此Tcp协议不会存在时序丢包等问题。


Udp 传输过程

  1. Server/Client

    • 创建一个Udp Socket
    • 把数据包发送给指定的IP地址
    • 从指定的IP地址接受数据
    • 关闭Socket
  2. 不可靠的网络传输
    • 存在丢包问题
    • 存在包的时序问题

What doesn’t kill you makes you stronger.