但行好事,莫问前程

tcp/ip协议认识

tcp/ip协议认识

协议分为四层,自下而上分别是链路层,网络层,传输层,应用层
mac数据报
传输过程

1.链路层

主机A把网络层传递下来的ip数据包增加首部和尾部,之后变成mac数据包,传给物理层。主机B链路层收到数据包会去掉首部和尾部,呈交给上层。

链路层的基本协议

1.封装成帧
传输时的mac数据包会增加SOH和EOT,接收端只有同时收到两个符才不会丢弃数据包。
2.透明传输
SOH=0x01
EOT=0x04
因为是透明传输,所以接受的数据可能会遇到SOH和EOT的情况,以此出现了转义字符,ESC=0x1B
3.差错检测
用的是循环冗余检测CRC

点对点协议(ppp协议)

ppp协议不用纠错,是不可靠传输,不用多点线路
F=Flag标志字段开始或结束=0x7E
A=地址字段=0xFF
C=控制字段=0x03
ppp帧=F1+A1+C1+协议2+IP数据+fcs+F1
F标志不会连续出现两个,如出现则传输发生错误
字节填充:0x7E->(0x7D,0x5E) 0x7D->(0x7D,0x5D)
小于0x20的,如0x03->(0x7D,0x23)
零比特传输:发送方连续出现5个1,则会增加一个0,接收方如果发现5个1,则会删除后面那个0,保证了F不会出现
协议的运行:pc机呼叫路由器,路由器收到载波信号,建立了物理层协议,此时LCP(链路控制协议)开始协商配置选项即发送ppp帧,帧的协议部分为LCP对应的代码,信息部分为特定的配置请求,链路另一端会响应(确认帧,否认帧,拒绝帧)
网桥(小型交换机)

2.网络层

网络层具有协议ip协议,arp协议,rarp协议,ICMP协议,IGMP协议
在这里插入图片描述
物理层:转发器
链路层:网桥
网络层:路由器
网络层以上:网关
数据的传输中ip的源地址和目的地址不会发生改变,mac地址会发生改变。
arp协议的会发送arp广播包,如果存在相应的ip地址,则会收到相应的arp回应包。

3.传输层

用户数据报协议UDP/传输控制协议TCP
系统端口号0-1023
登记端口号1024-49151
客户端49152-65535
UDP的特点:udp无连接,尽最大努力交付,面向报文,也就是整个报文转发,太大时网络层会自己切片,没有拥塞控制,这样面对视频等实时的数据很有利,源主机只会源源不断的输出数据。而且UDP的只有8字节,减少了数据量。
TCP的特点:面向字节流的可靠交付,必须由套接字建立连接。拥有停止等待协议。
停止等待协议:A发送M1给B,发送完暂停等待B的确认,B得向A发送确认,之后A会发送分组M2…
超时重传:为了防止丢失A会保存一个副本,当接收到B传来的确认,存的副本才会删除。
确认迟到,确认丢失:只要到达了相应的时间,A都会重传,如果确认迟到,A收到,但是会忽略。如果确认丢失,A重传,B接收丢弃,发出确认。
由于停止等待协议的信道利用率太低,因而出现了ARQ协议和滑动窗口协议。ARQ允许连续发送一组分组,之后接收最后一个确认。滑动窗口是在一个发送窗口范围内,有待确认窗口,可用窗口,发送一组数据,之后等待确认,无确认的超时重发。
TCP三次握手

A->B:SYN=1 seq=x
B->A:SYN=1 ACK=1 seq=y ack=x+1
A->B:ACK=1 seq=x+1 ack=y+1

TCP 释放

A->B:FIN=1 seq=u
B->A:ACK=1 seq=v ack=u+1
等待一段时间....
B->A:FIN=1 ACK=1 seq=w ack=u+1
A->B:ACK=1 seq=u+1 ack=w+1

4.应用层

DHCP服务

A->B:DHCPDISCOVER
B->A:DHCPOFFER
A->B:DHCPREQUEST
B->A:DHCPACK

or DHCPNACK  DKCPRELASE
当租用期到达周期的一半会request,如果B不响应,则会在85%T再次request

http

从域名服务器找到ip,之后会建立tcp
posted @ 2018-10-14 16:58  专业路过  阅读(393)  评论(0编辑  收藏  举报