Socket网络编程总结

Linux网络编程目录:

1.网络通信基础
2.Socket编程
3.高并发服务器
4.UDP服务器
5.Socket IPC(本地套)

//

1.网络通信基础

(1)网络应用程序设计模式
C/S模型
B/S模型
在这里插入图片描述
(2)网络通信分层模型
OSI七层模型与TCP/IP四层模型
在这里插入图片描述
网络通信过程:封装与解封装
在这里插入图片描述
在这里插入图片描述
数据包封装格式
在这里插入图片描述
(3)各层典型协议
在这里插入图片描述
以太网帧格式:
在这里插入图片描述
IP段格式:
在这里插入图片描述
UDP数据包格式:
在这里插入图片描述
TCP数据报格式:
在这里插入图片描述
(4)TCP通讯过程
建立连接:三次握手
断开连接:四次握手
在这里插入图片描述
TCP流量控制:滑动窗口
在这里插入图片描述

2.Socket编程

(1)套接字概念
在Linux中,socket表示网络进程间通信的特殊文件:
在这里插入图片描述
用文件描述符对应接收和发送缓冲区:
在这里插入图片描述

(2)Socket API

Socket API为应用层提供一个编程接口
在这里插入图片描述
TCP服务器建立涉及到的socket API
在这里插入图片描述
(3)基于TCP协议的C/S模型
在这里插入图片描述
sever.c的主程序
在这里插入图片描述

3.高并发服务器

(1)多进程并发服务器
由服务器接收客户端连接,并fork一个子进程来负责客户端的数据处理
在这里插入图片描述

(2)多线程并发服务器
由服务器接收客户端连接,并创建一个子线程来负责客户端的数据处理
在这里插入图片描述
(3)多路IO转接服务器
由内核监听是否有客户端连接以及客户端是否传输数据,因此提高了服务器的程序效率。
在这里插入图片描述
三种实现方法:不同方法API函数不同
select
poll
epoll
epoll事件模型:
在这里插入图片描述

4.UDP服务器

在这里插入图片描述基于UDP协议的C/S模型
在这里插入图片描述

5.Socket IPC(本地套)

在这里插入图片描述
在这里插入图片描述


版权声明:本文为changfei_1995原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。