互联网协议 Internet Protocol Suite

版权声明: https://blog.csdn.net/qccz123456/article/details/82285725

互联网分层模型有7层或4层,但5层更容易解释。
  应用层(Application Layer) 越靠近用户
   ↓
  传输层(Transport Layer)   ↓    不同应用 port
   ↓
  网络层(Network Layer)    ↓    不同网络 IP
   ↓
  链接层(Link Layer)      ↓    同一网络 ARP广播 MAC
   ↓
  物理层(Physical Layer)  越靠近硬件  0/1

物理层

  通过光缆、电缆等实体物理方式连接,传输0/1信号。

链接层

  规定一组电信号构成一个数据包,称为“帧”Frame,分为标头head和数据data,标头包含发送者、接收者、数据类型等,固定18个字节,数据包含具体内容,最短46字节最长1500字节,称为以太网协议。
——————————
| Head |  data  |
——————————
  发送者和接收者指的是网卡的发送地址和接收地址,MAC地址,每卡唯一的12个字节。
  定义了MAC地址,后续需要实现机器之间通信,即ARP地址解析协议Address Resolution Protocol,采用广播的方式,通知本网络内的每台机器,解析标头是否一致,一致则接收,不一致则丢弃。

网络层

  链路层人手一包的通信方式低效且不安全,需要实现不同子网络之间的通信,诞生了网络层,同一子网络采用广播方式发送,不同子网络采用路由方式发送,于是产生网络地址IP,网址。
  MAC地址解决子网络网卡之间通信,IP地址定位每个子网络。
  IP分4段,总共4*8=32bits,依据子网掩码分为网络号和主机号。IP数据包包含在MAC数据包中,IP数据包最长65535字节,所以在以太网数据包中需要分割后发送。网络层确实是否在同一个网络,主机号确定哪台机器。若同一网络则走ARP协议,不同网络则走网关。
—————————————————
| MAC Head | IP Head |  data  |
—————————————————

场景 数据包地址
同一个子网络 对方的MAC地址,对方的IP地址
非同一个子网络 网关的MAC地址,对方的IP地址
传输层

  建立任意两台主机上不同应用之间的通信,端口port,从0到65535。由此产生UDP和TCP协议,最长65535字节,整个数据包包含在网络层数据包中。
———————————————————————
| MAC Head | IP Head | TCP Head |  data  |
———————————————————————

应用层

传输层实现了不同程序之间的通信,应用层实现的是应用内的数据的协议,如图片、文字等。

reference:
互联网协议入门(一):http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html
互联网协议入门(二):http://www.ruanyifeng.com/blog/2012/06/internet_protocol_suite_part_ii.html
交换机、路由器、网关:https://www.jianshu.com/p/bc1f5ef918ea



IP是什么? IP是互联网协议,IP地址是每个终端的地址。
子网掩码是什么?配合IP地址,说明哪部分是网络号,哪部分是主机号。
网关是什么?一个网络连接到另一个网络的“关口”。
默认网关是什么?对IP数据包中的目的地址找不到存在的其他路由时,路由器所选择的路由。
端口是什么?来自传输层的数据通过不同的端口到达不同的上层应用。
物理地址是什么?是每台PC指定的唯一地址。
DNS是什么?是域名解析器,将指定的域名通过查询数据库翻译成指定的IP地址。



工作模式中的TCP服务器、TCP客户端、UDP(广播)模式?
TCP是有应答的协议,数据稳定可靠,但传输速度不快;
UDP是无应答的协议,数据不稳定不可靠,但传输速度快。

IPv4总共32位,以小数点隔开,总共4段,每段以十进制表示;
=网络号+主机号,子网掩码的二进制为1,对应于网络号,二进制为0,对应于主机号。如下例中169.254.0.0为网络号,0.0.233.180为主机号。

IPv6总共128位,以冒号隔开,总共8段,每段以十六进制表示;
=网络号+主机号,子网掩码的二进制为1,对应于网络号,二进制为0,对应于主机号。如下例中169.254.0.0为网络号,0.0.233.180为主机号。

例子:
IPv4:169.254.233.180
译码:10101001.11111110.11101001.10110100
子网码:255.255.0.0
译码:11111111.11111111.00000000.00000000
IPv6:fe80::58b6:e12:1a8c:e9b4 //::表示中间省略的0段,且只能省略一次
完整:fe80:0000:0000:0000:58b6:0e12:1a8c:e9b4
译码:1111111010000000.0000000000000000.0000000000000000.0000000000000000.
101100010110110.0000111000010010.0001101010001100.1110100110110100
可以发现IPv4的主机号与IPv6的后段。


层号 中文名 英文名 缩写
7 应用层 Application Layer A
6 表示层 Presentation Layer P
5 会话层 Session Layer S
4 传输层 Transport Layer T
3 网络层 Network Layer N
2 数据链路层 Data Link Later DL
1 物理层 Physical Layer PH

具体功能:
第1层物理层(Physical Layer)
  在局部局域网络上传送帧,它负责管理电脑通信设备和网络媒体之间的互通。包括了针脚、电压、线缆规范、集线器、中继器、网卡、主机适配器等。如RS232,强调的是底层硬件。
第2层数据链路层(Data Link Layer)
  负责网络寻址、错误侦测和改错。当表头和表尾被加至数据包时,会形成了帧。数据链表头(DLH)是包含了物理地址和错误侦测及改错的方法。数据链表尾(DLT)是一串指示数据包末端的字符串。例如以太网、无线局域网(Wi-Fi)和通用分组无线服务(GPRS)等。
第3层网络层(Network Layer)
  决定数据的路径选择和转寄,它网络表头(NH)加至数据报,以形成分组。网络表头包含了网络数据。例如:互联网协议(IP)等,强调的是网络走向。
第4层传输层(Transport Layer)
  把传输表头(TH)加至数据以形成数据报。传输表头包含了所使用的协议等发送信息。例如:传输控制协议义(TCP) 、UDP等,强调的是可靠额数据报,并给出传送给下一层不同应用的不同端口。
第5层会话层(Session Layer)
  负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。
第6层表示层(Presentation Layer)
  把数据转换为能与接收者的系统格式兼容并适合传输的格式。
第7层应用层(Application Layer)
  提供为应用软件而设的界面,以设置与另一应用软件之间的通信。例如: HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。


三次握手,四次挥手

这里写图片描述

TCP建立连接图

这里写图片描述
符号说明
seq:”sequance”序列号
ack:”acknowledge”确认号
SYN:”synchronize”请求同步标志
ACK:”acknowledge”确认标志”
FIN:”Finally”结束标志

为什么收到Server端的确认之后,Client还需要进行第三次“握手”呢?
  在只有两次“握手”的情形下,假设Client想跟Server建立连接,但是却因为中途连接请求的数据报丢失了,故Client端不得不重新发送一遍;这个时候Server端仅收到一个连接请求,因此可以正常的建立连接。但是,有时候Client端重新发送请求不是因为数据报丢失了,而是有可能数据传输过程因为网络并发量很大在某结点被阻塞了,这种情形下Server端将先后收到2次请求,并持续等待两个Client请求向他发送数据…问题就在这里,Cient端实际上只有一次请求,而Server端却有2个响应,极端的情况可能由于Client端多次重新发送请求数据而导致Server端最后建立了N多个响应在等待,因而造成极大的资源浪费!所以,“三次握手”很有必要!

TCP断开连接图

这里写图片描述
为什么需要“四次挥手”?
  试想一下,假如现在你是客户端你想断开跟Server的所有连接该怎么做?第一步,你自己先停止向Server端发送数据,并等待Server的回复。但事情还没有完,虽然你自身不往Server发送数据了,但是因为你们之前已经建立好平等的连接了,所以此时他也有主动权向你发送数据;故Server端还得终止主动向你发送数据,并等待你的确认。其实,说白了就是保证双方的一个合约的完整执行!


猜你喜欢

转载自blog.csdn.net/qccz123456/article/details/82285725