TCP/IP网络通讯协议

 
TCP/IP,即:Transmission Control Protocol/Internet Protocol,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成
 

1. TCP/IP 网络通信图示

  

理解:

网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。

快递运输流程:   快递员揽件-> 交给配送站 -> 运输到目的地的配送站 -> 快递员配送 (快递员负责把包裹转发到各个配送站,配送站根据收获地址里的省市区,确认是否需要继续转发到其他配送站,当包裹到达了目标配送站以后,配送站再根据联系方式找到收件人进行派件 ) 

  • 配送车就是物理介质,
  • 配送站就是网关,
  • 快递员就是路由器,
  • 收货地址就是IP地址,
  • 联系方式就是MAC地址。

2. TCP/IP模型分层:(自上而下)

    

2.1  TCP/IP 模型应用

网络分层通信方式协议与实现方式应用
应用层
数据通信
WWW、FTP、Email、HTTP等协议规定应用程序的数据格式
传输层
端口通信  
TCP、UDP    端口层; IP+端口 = 套接字(网络应用开发)
网络层        
IP通信
IP协议(IPv4、IPv6)
ARP协议、路由      
定义了IP地址,网络主机通信;
判断通信双方是否为同一子网等
链接层        
Mac通信
以太网、ARP协议、广播  定义了主机身份-MAC地址
局域网通信;确定了0和1的分组方式
物理层    
物理通信
电缆、光钎、无线电波等规定了0和1的电气特性,并负责传送;
备注: TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。

2.2  TCP/IP 模型与OSI 模型对比

OSITCP/IP
应用层应用层
表示层
会话层
传输层传输层(主机到主机)
网络层网络层
数据链路层数据链路层
物理层物理层

3. 数据包大小理解 

数据包通常由首部+数据组成:
  (IP包:在网络层被包装的数据包)
 
 

4. 第一层:【物理层】物理介质

物理介质就是把电脑连接起来的物理手段,常见的有光纤、双绞线,以及无线电波,它决定了电信号(0和1)的传输方式,物理介质的不同决定了电信号的传输带宽、速率、传输距离以及抗干扰性等等。

TCP/IP协议栈分为四层,每一层都由特定的协议与对方进行通信,而协议之间的通信最终都要转化为 0 和 1 的电信号,通过物理介质进行传输才能到达对方的电脑,因此物理介质是网络通信的基石。

 
   

5. 第二层:【链接层】以太网协议(Ethernet)

作用:对电信号进行分组并形成具有特定意义的数据帧,然后以广播的形式通过物理介质发送给接收方

定义:以太网规定,一组电信号构成一个数据包,叫做”帧”(Frame)。每一帧分成两个部分:标头(Head)数据(Data)

“标头”包含数据包的一些说明项,比如发送者mac地址、接收者mac地址、数据类型等等;”数据”则是数据包的具体内容。“标头”的长度,固定为18字节(“首部固定为14个字节,包含了目标MAC地址、源MAC地址和类型,后4个字节称为“尾部”,表示数据帧校验序列,用于确认数据包是否损坏)。”数据”的长度,最短为46字节,最长为1500字节。因此,整个”帧”最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。

 

5.1  以太网协议中的数据包怎么传输的呢?

以太网协议通过对电信号进行分组并形成数据帧,然后通过物理介质把数据包发送给对方。

其中,通过网络适配器(网卡)的MAC地址,确认对方身份(接收地址) ,然后以太网采用广播的形式,把数据包发给该子网内所有主机,子网内每台主机在接收到这个包以后,都会读取首部里的目标MAC地址,然后和自己的MAC地址进行对比,如果相同就做下一步处理,如果不同,就丢弃这个包。

 

6. 【链接层】ARP协议(address  resolution protocol

ARP协议,地址解析协议。通过IP地址获取对方的物理地址 (局限于同一个子网中)

注: 在TCP/IP模型中,ARP协议属于IP层;在OSI模型中,ARP协议属于链路层。
  • 工作方式:
  1. ARP先发送包含对方IP信息的ARP请求数据包,
  2. 该包在数据链路层再次包装,生成以太网包,
  3. 以太网广播给子网内的所有主机,
  4. 主机去除标头的IP地址,和自己的IP进行比较,
  5. IP相同的主机,做出回复,报告自己的MAC地址;其他IP不同的,则丢弃该包。
  6. 本机ARP获取对方MAC的同时,将IP与MAC的映射储存于ARP缓存中,以便下次访问。

7.第三层:【网络层】IP协议、ARP协议、路由协议

主要工作: 定义网络地址,区分网段,子网内MAC寻址,对于不同字网的数据包进行路由

  1. IP协议: 使用IP地址,使我们能够区分2台主机是否同属于一个网络, (IPV4、IPV6)
  2. arp协议:  (在TPC/IP 模型中,arp协议属于网络层) 
  3. 路由协议:通过IP协议判断两台主机是否在同一个子网中: 在,则使用ARP协议查询对方的MAC,然后广播给该主机发送数据包;不在,则以太网会将数据包转发给本子网的网关进行路由。网关是互联网上子网与子网之间的桥梁,所以网关会进行多次转发,最终将该数据包转发到目标IP所在的子网中,然后再通过ARP获取目标机MAC,最终也是通过广播形式将数据包发送给接收方。

8. 第四层:【传输层】UDP协议、TCP协议

作用: 定义了端口,实现端口到端口的通信 :数据包到达目标主机后,根据端口号找到对应应用程序 

UDP协议:给每个应用程序标识身份,UDP协议定义了端口,同一个主机上的每个应用程序都需要指定唯一的端口号,并且规定网络中传输的数据包必须加上端口信息

UDP数据包:  首部+数据,  首部8个字节,主要包含源端口、目标端口;数据最大为65527 (65535-8)个字节

UDP缺点: UDP无确认机制,数据包一旦发出,无法知道对方是否收到,可靠性较差,因此诞生了TCP协议

TCP协议: 传输控制协议,面向连接、可靠、基于字节流的通信协议。  --> TCP就是有确认机制的UDP协议  : 每发出一个数据包都要求确认,有一个数据包丢失,则收不到确认,发送方需要重新发送该数据包。

UDP数据包:  首部+数据,TCP数据包理论上可以无限长,为了保证网络效率,原则上不会超过IP包的长度(65515)

TCP缺点: 相比于UDP,TCP实现过程复杂,消耗连接资源多,传输速度慢。

8.1 TCP 三次握手 (建立TCP连接)

理解:

主机A:我想发数据给你,可以么?

主机B:可以,你什么时候发?

主机A:我马上就发,你准备接收!

详述:
(1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认。
(2)第二次握手:Server收到数据包后由标志位SYN=1知道Client请求建立连接,Server将标志位SYN和ACK都置为1,ack=J+1,随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求,Server进入SYN_RCVD状态。
(3)第三次握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server,Server检查ack是否为K+1,ACK是否为1,如果正确则连接建立成功,Client和Server进入ESTABLISHED状态,完成三次握手,随后Client与Server之间可以开始传输数据了。

8.2 TCP 四次挥手:(断开连接)

TCP四次挥手

简述:

主机A:最后一条数据ACK收到没?收到我就断开(FIN)了。

主机B:嗯,数据ACK收到了 。

主机B: 数据成功接收,合作愉快!(表示可以断开)

主机A:合作愉快!(确认并断开)

 
详述:
  1. 第一次挥手:client向和Server终止连接,发送一个FIN+ACK(seq=a,ack=b)的数据段ACK表示对于上次传输的数据段的确认,FIN表示请求终止和Server的连接。
  2. 第二次挥手:Server收到了Client的请求端口连接之后,响应一个ACK(seq=b,ack=a+1)的数据段a+1表示对于client的SYN报文的确认。
  3. 第三次挥手:Server也想终止连接,也会发送一个FIN+ACK(seq=b,ack=a+1)的数据段FIN表示Server想终止连接,a+1表示对于client的SYN报文的确认,这两个报文相当于一个报文。
  4. 第四次挥手:Client收到Server的ACK报文和FIN+ACK报文之后,会响应一ACK(seq=a+1,ack=b+1),ack=b+1,表示对于Server的FIN报文的确认。

9.第五层【应用层】

作用:定义数据格式并按照对应的格式解读数据。如: HTTP、FTP、SMTP等  (数据链路层、网络层、传输层的支持,使数据可以从一台主机上的应用程序传输到另一台主机上的应用程序。但传过来的是字节流,不能很好的被程序识别,操作性差 )

 

9.1【应用层】【DHCP协议】新入网的机器是如何能上网的?

DHCP 协议:  使用UDP协议工作的应用层服务。
  • 方法1. 静态IP地址:管理员手动添加IP地址、子网掩码、网关地址、DNS服务器地址
  • 方法2. 动态获取IP: 通过DHCP协议,动态获取IP地址、子网掩码、网关地址、DNS服务器地址

1. 广播发送给子网内所有机器关于请求IP的消息,通过网络层,DHCP接收到该消息,其他机器丢弃该包 

2. DHCP处理请求,分配IP,返回“DHCP响应”的数据包

10. 访问google网页时,发生了什么?

1)打开网页发送一个网页请求的数据包
2)DNS解析域名,得到google的IP
3)子网计算子网掩码,判断是否同一子网
4)不同子网请求网关,准备向外转发
5)应用层:HTTP协议封装HTTP数据包
6)传输层:TCP协议封装TCP数据包:指定端口-->获取本地端口,指定google端口
7)网络层:IP协议封装IP数据包:指定双方IP(本机和google)
8)链接层:Ethernet协议封装以太网数据包:指定MAC->本机MAC,本机的网关MAC(ARP获取)
9)链接层:Ethernet协议分割IP数据包的数据,封装成多个以太网数据包,形成数据帧,采用广播形式,通过传输介质,发送给对方主机
10)网关通信多个网关转发,到达google的服务器
11)服务器处理接收以太网数据包群(数据帧)
拼接成完整的TCP数据包
解析出HTTP数据包
得到HTTP请求
做出HTTP响应,通过TCP协议返回给本机
12)本机处理收到HTTP请求,显示网页,完成通信
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值