c/c++ 网络基础概述

网络数据传送

1:网卡: 电脑或手机发送数据的设备, 有线网卡设备和无线网卡设备;
c/c++ 网络基础概述_第1张图片
os操作系统通过操作网卡来收发网络数据
c/c++ 网络基础概述_第2张图片
c/c++ 网络基础概述_第3张图片


2:每个网卡都有一个Mac地址,是表示网络中唯一的地址;

3:每个接入到互联网的机器在互联网上会有一个IP地址;
Ip地址目前主要有两种模式: (1)ipv4 ip地址 (2) ipv6 地址;
c/c++ 网络基础概述_第4张图片
4: 操作系统通过网卡驱动,识别和使用网卡设备;
(1)发送数据,操作系统向网卡发送数据,数据里面带有这个数据包要去的IP地址,
(2) 网卡会把数据发出去给网络,网络会转到数据包对应的IP地址;
(3)网卡接收到数据后会把数据通知操作系统;
c/c++ 网络基础概述_第5张图片
(4)应用程序使用操作系统指定的API接口和模式来 接收和发送网络数据包;
c/c++ 网络基础概述_第6张图片

在同一个网络之内不可能有同一个Ip是重复的


socket (套接字)

1: socket是操作系统提供给应用程序用来发送数据的对象;
2: socket 主要有两种模式在使用:
TCP socket: 可靠的数传输协议; TCP 协议栈
UDP socket:不可靠的传输协议;
3: 基于socket对象操作系统提供了一些列的接口来收发数据;


TCP socket原理

1: 客户端:
(1) 创建一个TCP 模式的socket;
(2) 根据IP地址和端口, 与指定的服务器进行连接;
(3) 连接成功以后, 可以使用socket向服务器发送数据和接收数据;
(4) 主动关闭连接/被动关闭连接;
2: 服务器:
(1) 创建一个TCP 的socket;
(2) 调用操作系统API,让这个socket监听到指定的端口上;
(3) 当有客户端连接的时候,监听socket收到客户端的连接请求数据;
(4) 验证通过后:创建一个新的socket与对应的客户端进行通讯;
(5) 关闭监听端口,再也无法接入新的socket;
(6) 关闭与客户端连接的socket, 断开与客户端的连接;
3: 可靠的数据收发协议:
TCP 建立连接后:
发送数据: 要收到对方的确认才算成功, 才会发送下一个;
接收数据: 收到数据后,要发送给对方一个确认,才能接受下一个;


c/c++ 网络基础概述_第7张图片

三次握手


UDP 数据传送

##

1: 客户端/服务器:
(1)创建一个UDP socket;
(2)把数据包发送给指定的IP地址;
(3)从指定的IP地址接受数据;
(4)关闭socket;

2: UDP 是不可靠的网络传输:
(1)有可能数据包丢失;
(2)有可能先发的后到,后发的先到;

你可能感兴趣的:(c/c++)