目录
1、网络简述
1.1、以太网基础
- CS架构:Client/Server,客户端/服务器模式;建立在局域网的基础上的;(响应快,但兼容性差,开发维护客户端的成本高)
- BS架构:Browser/Server,浏览器/服务器模式;建立在广域网的基础上的;****(响应慢,但兼容性好,个性化定制较差)
1.2、OSI模型

TCP/IP模型通讯过程:

1.3、以太网帧格式
1.3.1、数据包封装与传递过程

1.3.2、帧格式

1.3.3、MAC地址
称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网上设备位置的地址。
第三层网络层负责IP地址 ,第二层数据链接层则负责MAC地址。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有唯一的MAC地址。
MAC地址长度为48bit(6字节),由16进制数字组成。分为前24bit后24bit:前24bit叫做组织唯一标识符,由IEEE注册管理机构给不同厂家分配。后24bit由厂家自己分配(标识扩展符)。

1.4、TCP/IP协议簇
1.4.1、DNS
DNS用来维护一个表示主机名和IP地址之间的对应关系数据库。应用中用户输入主机名(域名)时,DNS会自动检索哪个注册了主机名和IP地址的数据库,并迅速定位对应IP。


1.4.2、ARP
只要确定了IP地址,就可以向这个目标发送IP数据报。但底层数据链路层进行实际通讯时需要了解每个IP地址对应的MAC地址。ARP就是一种解决MAC地址问题的协议,以目标IP地址为线索,定位下一个应该接收数据分包的网络设备对应的MAC地址。

1.4.3、ICMP
ICMP协议的主要功能是确认IP包是否成功送达目标地址,通知在发送过程中IP包被废弃的具体原因,改善网络设置等。ICMP消息大致可分为两类:通知出错原因的错误消息和用于诊断的查询消息。


1.4.4、DHCP
协议实现了自动设置IP地址、统一管理IP地址分配。计算机只要连接到网络,就可以进行TCP/IP通讯,使即插即用变为可能。
工作机制:
假设一台DHCP服务器 ,将DHCP所要分配的IP地址、子网掩码、路由控制信息以及DNS服务器的地址等设置到服务器上。

1.4.5、IP
属于网络层,网络层的主要作用是实现终端节点之间的通讯。用IP地址识别主机和路由器,为了保证正常通讯,需要为每个设备配置正确的IP地址。
- IP地址: IP地址由"网络标识(网络地址)"和"主机标识(主机地址)"两部分组成;

- **广播地址:**用于在同一个链路中相互连接的主机之间发生数据包。将IP地址中的主机地址部分全部设置为1,就成为了广播地址;
- **子网掩码:**用来指明一个IP地址的哪些位标识的是主机所在的子网,哪些位标识的是主机的位掩码。子网掩码不能单独存在,必须结合IP地址一起使用。作用是将某个IP地址划分成网络地址和主机地址两部分;

1.4.6、TCP/UDP
通讯处理:
TCP/IP的众多应用协议大多以客户端/服务端的形式运行。客户端是请求的发起端,服务端是请求的处理端。

端口号:
MAC地址和IP地址分别用来识别同一链路中不同的计算机和识别TCP/IP网络中互连的主机。在传输层中有类似于地址的概念,即端口号。端口号用来识别同一台计算机中进行通讯的不同应用程序。

通过IP地址、端口号、协议号进行通讯识别:
通常采用源/目标IP、协议号、源/目标端口号这5个信息来识别一个通讯。

- **端口号如何确定:**标准既定的端口号(静态方法)和时序分配法(动态方法);
- **端口号与协议:**端口号由其使用的传输层协议决定,因此不同的传输协议可以使用相同的端口号;
1.5、TCP协议
TCP是面向连接的,即当计算机双方通讯时必须先建立连接,然后进行数据通讯,最后拆除连接。TCP在建立连接时又分三步走(即3次握手):
第一步:(A->B) 主机A向主机B发送一个包含SYN即同步标志的TCP报文,SYN同步报文会指明客户端使用的端口及TCP连接的初始序号;
第二步:(B->A) 主机B在收到客户端的SYN报文后,将返回一个SYN+ACK的报文,表示主机B的请求被接受,同时TCP序号被加1,ACK即确认;
第三步:(A->B) 主机A也返回一个确认报文ACK给服务器端,同样TCP序列号被加1,到此一个TCP连接完成;

TCP数据报头结构如下示: 
源端口、目的端口:16位,标识出远端和本地的端口
• 顺序号:32位,标识发送的数据报的顺序
• 确认号:32位,希望收到的下一个数据报的序列号
• TCP头长:4位,表明TCP头中包含多少个32位字
• 6位未用
• ACK:置1表明确认号是合法的;若为0,那么数据报不包含确认信息,确认字段被省略
• PSH:表示带有PUSH标志的数据,接收方因此请求数据报一到便可送往应用程序,而不必等到缓冲区装满时才传送
• RST:用于复位由于主机崩溃或其他原因而出现的错误的连接,还可用于拒绝非法的数据报或拒绝连接请求
• SYN:用于建立连接
• FIN:用于释放连接
• 窗口大小:16位,窗口大小字段表示在确认字节之后还可以发送多少字节
• 校验和:16位,是为了确保高可靠性而设置的,是校验头部、数据和伪TCP头部之和
• 可选项:0或多个32位字,包括最大TCP载荷、窗口比例、选择重发数据报等选项
1.6、UDP协议
UDP即用户数据报协议,是一种面向无连接的不可靠传输协议,不需要通过3次握手来建立连接。
UDP数据包头结构:

- 源地址、目的地址:16位,标识出远端和本地的端口号
- 数据包的长度是指包括包头和数据部分在内的总的字节数。因为包头的长度是固定的,所以该域主要用来计算可变长度的数据部分(又称数据负载)
1.7、协议选择
- 可靠性要求高-------TCP
- 实时性要求高-------UDP
- 网络状况不好-------TCP 反之UDP减少负荷