网络编程基础
C/S架构
C指的是client(客户端软件),S指的是server(服务端软件)。C\S架构就是说的Client\Server架构。
TCP/IP
全称:Transmission Control Protocol / Internet Protocol 传输控制协议/因特网互联协议,有名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础。
OSI 七层模型
TCP/IP 各层详解
物理层
主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
数据链路层
定义了电信号的分组方式
以太网协议:早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet。
ethernet规定:
一组电信号构成一个数据包,叫做“帧”。
每一数据帧分成:报头head和数据data两部分。
head包含:(固定18个字节)
- 发送者/源地址,6个字节
- 接受者/目标地址,6个字节
- 数据类型, 6个字节
data包含:(最短46字节,最长1500字节)
- 数据包的具体内容
head长度+data长度 = 最短64字节,最长1518字节,超过最大限制就分片发送
网络层
引入一套新的地址用来区分不同的广播域/子网,这套地址即网络地址。
IP协议:
- 规定网络地址的协议叫做ip协议,它定义的地址称为ip地址。
- 范围0.0.0.0 - 255.255.255.255
- 一个ip地址通常写成四段十进制数,例:172.16.10.1
子网掩码:
就是表示子网络特征的一个参数。用来标识一个IP地址的哪些位是代表网络位,哪些位代表主机位。
传输层
建立端口到端口的通信
补充:端口范围0-65535, 0-1023位系统占用端口
传输层有两种协议,TCP和UDP:
tcp是可靠的数据传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
最可靠的方式就是只要不得到确认,就重新发送数据报,直到得到对方的确认为止。
udp协议是不可靠的传输。
TCP协议虽然安全性很高,但是网络开销大,而UDP协议虽然没有提供安全机制,但是网络开销小,在现在这个网络安全已经相对较高的情况下,为了保证传输的速率,我们一般还是会优先考虑UDP协议。