linux基础《十》

网络应用程序设计模式:
linux基础《十》
linux基础《十》
协议格式:
数据链路层协议=>以太网帧协议
linux基础《十》
以太网帧协议需要知道对方的mac地址才能给对方发送数据。
不知道对方的mac地址的时候填ff:ff:ff:ff:ff:ff
linux基础《十》
linux基础《十》
IP协议=》网络层
linux基础《十》
DNS - 服务器
linux基础《十》
TCP/UDP=》传输层协议
linux基础《十》
linux基础《十》TCP协议:

  • 面向连接的安全的流式传输协议
  • 连接的时候,进行三次握手
  • 数据发送的时候,会进行数据的确认
  • 数据丢失的之后,会进行数据的重传
    linux基础《十》
    UDP协议
  • 面向无连接的不安全的报式传输
  • 连接的时候不会握手
  • 数据发送出去之后就不管了
    linux基础《十》

数据的发送和接收:
linux基础《十》
socket编程:
linux基础《十》
linux基础《十》
linux基础《十》
linux基础《十》
linux基础《十》
linux基础《十》
发送数据的原理:先写到本机的写缓冲区然后操作系统自动发送
linux基础《十》
默认是阻塞的:阻塞指的是文件描述符对应的设备文件的属性
服务器端的步骤:
linux基础《十》
linux基础《十》
htonl()小端转大端 =》主机字节序转网络字节序
INADDR_ANY会自动适配本机的IP地址

客户端的步骤:
客户端的端口是隐式绑定的,占用空闲的端口号就可以
linux基础《十》
linux基础《十》
linux基础《十》
TCP的三次握手: