Linux高并发服务器开发之网络编程

Linux网络编程

  • 网络基础
    • 网卡
    • ip
    • 端口
    • OSI 七层模型 与 TCP/IP 四层模型
    • 协议
    • 网络通信过程
  • TCP和socket
  • TCP状态转移和IO多路复用
  • 反应堆模型和线程池模型
  • libevent
  • webserver项目

网络基础

网卡

网络适配器:
作用:收发数据

每一块网卡有唯一的mac地址 。在网络上的每一个计算机都必须拥有一个独一无二的MAC地址。
作用: 用来标识一块网卡,6个字节。
Linux高并发服务器开发之网络编程_第1张图片

ip

ip用来标识一台主机,逻辑地址。
iPv4 : ip地址是4字节,32位。
ipv6: 128位,16字节。
子网id: ip中被子网掩码中连续1覆盖的位.
主机id:ip中被子网掩码中连续0覆盖的位。
子网掩码 netmask: 用来区分子网id 和主机id。
192.168.1.2/24
192.168.1.2/255.255.255.0
Linux高并发服务器开发之网络编程_第2张图片
其中:
网段地址: 192.168.1.0
广播地址: 192.168.1.255
剩下254个地址为可选ip地址。

端口

作用: 用来标识应用程序(进程)。
port: 2个字节,范围 0-65535。
其中:
知名端口:0-1023
自定义端口:1024 - 65535

OSI 七层模型 与 TCP/IP 四层模型

物理层: 定义双绞线接口类型, 光纤的传输速率等。
数据链路层: mac 负责收发数据。
网络层: ip 给两台主机提供路径选择。
传输层: 端口区分数据递送到哪一个应用程序。
会话层: 建立连接。
表示层: 解码。
应用层:应用程序。

Linux高并发服务器开发之网络编程_第3张图片
Linux高并发服务器开发之网络编程_第4张图片

协议

规定了数据传输的方式和格式。

应用层协议:
FTP: 文件传输协议
HTTP: 超文本传输协议
NFS: 网络文件系统

传输层协议:
TCP: 传输控制协议
UDP: 用户数据报协议

网络层:
IP:因特网互联协议
ICMP: 因特网控制报文协议 ping
IGMP: 因特网组管理协议

链路层协议:
ARP: 地址解析协议 通过ip找mac地址
RARP: 反向地址解析协议 通过mac找ip

网络通信过程

TCP和socket

TCP状态转移和IO多路复用

反应堆模型和线程池模型

libevent

webserver项目

你可能感兴趣的:(Linux编程学习,linux,网络编程)