一、Tcp/Ip理论基础
1、Linux的优点之一就是在于它丰富而稳定的网络协议栈,其范围是从协议无关层(如通用的socket层接口和设备层)到各种网络协议的实现;
2、Tcp/Ip协议族
Tcp/Ip协议族是一个四层协议系统,分别是应用层、传输层、网际层、网络接口层。每一层完成不同的功能,且通过若干协议来实现,上层
协议使用下层协议提供的服务。
3、协议:
应用层 TFTP、FTP、Telnet、DNS
传输层 TCP、UDP
网际层 ICMP、IP、ARP、RARP
网络接口 FDDI 、PDN、PPP、IEEE802.1A、IEEE802.2
4、传输层为两台主机上的应用程序提供端到端的通信
传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程
5、传输层协议主要有两个,包括传输控制协议和用户数据报文协议 (可靠的,面向连接的,基于流的服务)
传输控制协议(TCP):该协议对建立网络上用户进程之间的对话负责,它确保进程之间的可靠通信,所提供的功能如下:
1.监听输入对话建立请求
2.请求另一网络站点对话
3.可靠的发送和接收数据
4.适度的关闭对话
6、Tcp协议头
源端口 目的地端口
顺序号数
确认号数
数据偏移 保留 标志位 窗口
校验和 紧急指示器
选型 填充
TCP数据
目的地地址 源地址 类型字段 IP头 ( IP数据 ) CRC
7、TCP三次握手四次挥手
建立连接时的三次握手
1、客户端向服务端发送连接请求 (是一个同步报文段)
2、服务器同意与客户端建立连接,同时发送自己的序号,并对第一个报文段进行确认
3、客户端对第二个同步报文段进行确认
关闭连接的四次挥手
1、第四个报文段包含FIN标志,因此是结束报文段,客户端请求关闭连接
2、服务器确认该结束报文段
3、服务器发送自己的结束报文段
4、客户端确认该结束报文段
8、UDP也是传输层协议,它是无连接的,不可靠的传输服务.
当接收数据时它不向发送方提供确认信息,它不提供输入包的顺序,如果出现丢失包或重份包的情况,
也不会向发送方发出差错报文.由于它执行功能时具有较低的开销,因而执行速度比TCP快
9、UDP协议头
源端口 目的地端口
报文长度 检验和
数据
数据
数据
目的地地址 源地址 类型字段 IP头 ( IP数据 ) CRC
10、应用层
应用层负责处理应用程序的逻辑,比如文件传输,名称查询和网络管理
Telnet :远程登录协议
DNS :域名解析协议,提供机器域名到IP地址的转换
TFTP :简单文件传输协议
FTP :文件传输协议
11、网际层
网际层实现数据包的选拔和转发 通信的两台主机一般不是直接相连的 中间节点(路由器)
12、IP协议
IP主要有以下四个主要功能: 数据传输、寻址 、路由选择 、数据报文的分段
13、IP报头
UERS HLEN 服务类型 总长度
识别 标记 分段偏移
生存期 协议 检验和
源IP地址
目的地IP地址
IP选项(可以没有) 填充
IP数据报文数据(可多达65535)字节
目的地地址 源地址 类型字段 IP头 IP数据 CRC
14、网络接口层
网络接口把数据链路层和物理层放在一起,对应TCP/IP概念模型的网络接口。
对应的网络协议是:Ethemet、FDDI、和能传输IP数据包的的任何协议
15、TCP 与 UDP 的比较
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接
2、TCP提供可靠的服务 UDP不可靠
3、TCP面向字节流 UDP基于数据报
4、TCP执行速度慢 UDP没有拥塞控制 执行速度快
5、TCP连接点到点(一对一的)UDP支持一对一,一对多, 多对一,多对多的交互通信(适用广播和多播)
6、TCP首部开销20字节;UDP的首部开销小,只有8个字节