TCP/IP协议
网际协议IP
IP是整个TCP/IP协议族的核心,也是构成互联网的基础。
与IP协议配套的的有三种协议分别是
- 地址解析协议APR
- 网际控制报文协议ICMP
- 网际管理协议IGMP
IP地址定义为{<网络号>,<主机号>}
IP地址有很多种,主要了解ABC三类。
注意:网络断中的网络号有两个不能用
1 网络号字段为全零的,这是个保留地址意思是本网络
2 网络号字段为全一的,这个保留为本地软件的环回测试笨猪记得进程之间的通信之用
划分子网的原理
在这里IP地址的定义可以为{<网络号>,<子网号>,<主机号>}
子网掩码的作用是一IP地址相与获得网络号
所以利用子网掩码来划分子网,子网掩码后移一位,子网是原来的二分之一\
运输层的TCP和UDP
端口的定义:是应用层的各种协议进程与运输实体进行曾间交互的一种地址。
端口号分为两大类
一服务器使用的端口
1 熟知端口号或系统端口号数值为1-1023
常用的熟知端口号
FTP(文件传送协议)
SMTP(电子邮件传送协议)
DNS(域名解析协议)
HTTP(超文本传送协议)
2 另一类叫做登记端口号
这类端口是供没有熟知端口的应用程序使用的,这类端口是要登记注册的
二 客户端使用的端口
49152-65535
他是动态选择的,短暂使用。
TCP的主要特点
1 TCP是面向连接的运输层协议
2 每一条TCP连接只有两个端口即点对点
3 TCP提供可靠交互服务
4 TCP提供全双工通信
5 面向字节流 TCP缓存是一个字节一个字节缓存的
TCP的连接
TCP的连接端口叫做套接字(socket)=(IP地址:端口号)
socket有多种含义 如网络编程
可靠传输的工作原理
停止等待协议:如果A发送一个数据包后给B,A没有收到一个确认数据包那么,A就会等待一个RTT(往返时间)再重发,这叫超时重发
TCP报文段的首部格式
其中
序号:本报文段发送数据的第一个字节的序号
确认号:是期待收到的下一个报文段的第一个数据的序号
六个控制位
- 紧急URG 当它为一是表明紧急指针有效,该报文段优先级高于其他报文段
- 确认ACK 在建立连接后所有的报文段必须把它置1
- 同步SYN 在连接建立时的同步序号,当SYN=1,ACK=0,时表明这是请求建立连接报文段
- 终止FIN 用来释放一个连接
TCP的滑动窗口
为了提高信道利用率采用连续发送,和累积确认,先由客户端和服务端商量一个窗口大小,在这个窗口中的数据可发送到收到确认之后窗口向后移动,到数据丢失是等待重传才能向后移动
TCP的拥塞控制
快重传:如果报文段丢失了,接受方必须马上发送重复确认,发送方必须接收到三个的重复确认,才立即重传。
因为快重传发送方知道之丢失个别数据,所以使用快恢复算法,发送新的ssthresh=cwnd/2并执行拥塞避免算法(加法)
TCP的流量控制
所谓的流量控制就是让发送方的发送速率不要太快,让接收方来得及接收
控制滑动窗口来控制流量
TCP的运输连接管理
三次握手四次分手
三次握手
UDP
UDP概述
- UDP是无连接的,即发送数据之前不用建立连接
- UDP使用尽最大努力交付
- UDP是面向报文的,即应用程序交给UDP多长的报文,UDP都照常发送,就是一次交付一个完整的报文,这样会降低IP层的效率。
- UDP没有拥塞控制
- UDP支持一对一,一对多,多对一和多对多的交互通信
- UDP的首部开销小
*UDP首部格式
参考文献《计算机网络》谢希仁