TCP和UDP协议
TCP协议简介
TCP协议是面向连接的、可靠地进程到通信的协议
TCP提供双工服务,即数据可在同一时间双向传输
TCP将若干个字节构成一个分组,此分组称为报文段
TCP报文段首部格式
源端口号:发送方进程对应端口号
目标端口号:接收端收到数据段后,根据这个端口号来确定把数据送给哪个应用进程
序号:当TCP从进程接收数据字节时,就把他们存储在发送缓存中,并对每一个字节进行编号,当数据达到目的地后,接收端会按照这个序号把数据重新排列,保证数据的正确性
确认号:是对发送端的确认信息,用它来告诉发送端这个序号之前的数据段都已经收到
首部长度:用它可以确定首部数据结构的字节长度。
保留:这部分保留作为扩展功能用
控制位:这六位有很重要的作用,TCP的连接、传输和断开都受这六个控制位指挥
窗口值:说明本地可接收数据段的数目,这个值得大小是可变的,当网络畅通时将这个窗口值变大以加快传输速度,当网络不稳定时减小这个值保证网络数据的可靠传输, TCP协议中的流量控制机制就是依靠变化窗口大小实现的
校验和:用来做差错控制,TCP校验,TCP校验和的计算包括TCP首部、数据和其他填充字节。在发收款TCP数据段时,由发送端计算校验和,当达到目的地时又进行一次校验和计算。若这两次的校验和一致,则说明数据基本是正确的,否则将认为该数据已被破坏,接收端将丢弃该数据
紧急指针:和URG配合使用
选项:TCP首部可以有多达20字节的可选信息
Urg:紧急指针 档urg=1 ,表明紧急指针有效告诉系统报文段中有紧急数据
ACK:确认指针,当ack=1,确认字段有效。
PSH:推送指针,当两个应用进程进行交互式通信时,有时候在一端的应用进程希望在键入一个命令后立即就能收到对方的响应,这时psh=1即可
RST:复位指针,当RST=1,表明Tcp连接中出现严重差错,必须释放连接,然后再重新建立一次连接。
SYN:同步指针,在建立连接是用来同步序号。SYN=1,ACK=0,连接为请求报文。当SYN=1,ACK=1,连连接为响应报文。
FIN:终止指针,用来释放连接。
SEQ:序号 SYN报文:请求报文
UDP协议
UDP是一个无连接、不保证可靠性的传输层协议,也就是说发送端不关心发送的数据是否达到目标主机。数据是否出错,收到数据的主机也不会告诉发送方是否收到了数据,它的可靠性由上层协议来保障
UDP的首部结构简单,在传输时能实现最小的开销,如果进程想发送很短的报文而不关心可靠性,就可以使用UDP
IP地址分为A、B、C、D、E五类划分规则:
ABC常用 DE用于科学实验
A类地址:1→126
B类地址:128→191
C类地址:192→223
ABC三类地址的默认子网掩码:
A类:255.0.0.0---------/8
B类:255.255.0.0-----/16
C类:255.255.255.0--/24
127.0.0.1是回送地址,指本地机,一般用来测试使用。
私有地址
满足企业用户在内部网络中使用的需求
私有地址不能在Internet上使用
私有地址分为三组:
A类:
10.0.0.0→10.255.255.255
B类:
172.16.0.0→172.31.255.255
C类:
192.168.0.0→192.168.255.255