互联网协议基本知识

参考
互联网协议入门(一)- 阮一峰
互联网协议入门(二)- 阮一峰
OSI每层数据包
Wireshark入门

5.应用层:规定应用程序的数据格式,所有应用程序协议构成的
4.传输层:端口之间的交流,Unix系统下主机+端口(scoket)
3.网络层:确定计算机所在的子网络
2.链路层:确定0/1分组方式,一组电信号构成数据包
1.物理层:把电脑连接起来的物理手段,作用负责传送0/1电信号

1.物理层(Physical layer)

电缆、光缆、双绞线、无线电波

2.1-分组协议

代表协议 -- 以太网(Ethernet),每组数据包有两个部分,标头和数据。

  • 标头:固定18个字节,数据包说明项、接受者、发送者、数据类型
  • 数据:最短46个字节,最长1500个字节,具体的内容

2.2-MAC地址

以太网规定,所有联入互联网的设备都需要“网卡”接口,数据包是从一个网卡传到另一个网卡,网卡地址就是MAC地址。

MAC地址目前固定为48个二进制位,通常用12个十六进制表示,前6位IEEE授权的厂家编号,后6位厂商的网卡流水号。

2.3-广播

以太网把数据包发送给本网络中所有计算机,计算机自己判断是否是接受者,不是丢弃数据包,这种发送方式就是“广播”。

3.网络层(Network layer)

由于计算机无法使用MAC地址判断是否同一个子网络,导致无法确定能否使用广播发送数据包,所以“网络层”出来了,让发送主机找到目标主机。

网络层目的引进一套新的地址:“网络地址”,简称网址。帮助我们确定计算机所在的子网络,所以数据包要经过网址再到MAC地址。

3.1-IP协议

网址的协议,叫做IP协议,IP协议定义的地址称为IP地址。

目前广泛使用的IP协议第四版,建成IPv4。此版本规定,网络地址由32个二进制位组成。

0.0.0.0 ~ 255.255.255.255

IP地址由两部分组成,前一部分是网络,后一部分是主机,通过使用子网掩码(subnet mask)来对应那前多少位是网络部分.

两台计算机可以使用IP地址和子网掩码AND操作,如果结果相同则是同一块子网。

3.2-IP数据包

根据IP协议发送的数据,就叫做IP数据包,也分为标头和数据两部分。

  • 标头:20到60字节。版本、长度、IP地址等
  • 数据:最长65515字节,但因为以太网数据包限制到1500字节,所以超过就要分割成多个以太数据包。具体内容

IP数据包进入以太网后,会被以太数据包封装到Frame中的数据中。

3.3-ARP协议

详细流程参考图解ARP协议一

  • 在网络通信中,主机之间的通讯数据包,从网络层(IP数据包,包含目标/发送的IP地址)-> 链路层(以太数据包,包含目标/发送的MAC地址)时,需要目标的MAC地址
  • 一般情况下,网络层中的IP数据包中不会包含目标的MAC地址,所以需要ARP协议来获取目标的MAC地址

ARP(Address Resoluation Protocal)即地址解析协议,用来实现从IP地址到MAC地址的映射,即访问目标IP地址的MAC地址,采用一问一答模式。

ARP协议使用以太网的“广播”功能:将请求包以广播的形式发送给交换机或者WiFi(无线路由器)设备,这些设备再将此数据发送给同一局域网络的其他主机。

ARP的目的是为了协助IP地址获取目标MAC地址,所以应该是IP协议的平等协议,因为IP协议属于网络层,所以ARP也属于网络层。

3.4-网关

网关又称为协议转换器、网间连接器,一般提供一个局域网的网段。

4.传输层(Transport Layer)

使用“端口”(port)来表示具体的进程,端口是网卡的程序的编号。

端口从0到65535之间一个整数,0到1023被系统使用。

4.1-UDP协议

在传输层中,数据包中必须加入端口信息,UDP协议下的UDP数据包,由标头和数据组成,标头加入端口号。

标头只有8个字节,数据包大小不能超过65535(2^16)字节,正好放进一个IP数据包中。

UDP协议,比较简单,容易实现。

UDP数据包,一旦发出,无法确定目标是否收到。

4.2-TCP协议

TCP协议没发送一个数据包,都要确认,如果没有收到确认,需要重发数据包。

TCP保证数据不会遗失,但是过程复杂,实现困难,消耗较多资源。

TCP数据包没有长度限制,但是为了不必要的分割,通常不超过IP数据包的长度。

5.应用层(Application Layer)

应用程序协议(HTTP、Email、WWW、FTP、DHCP等)构成的应用层。

应用层存储在UDP/TCP(传输层)的数据中。

5.1-DNS协议

DNS(Domain Name System)就是根据域名来查IP地址,协助应用层数据,属于应用层。

终端使用dig命令查DNS信息

dig www.baidu.com

dig +short www.baidu.com

6.以太数据包

[以太网标头][IP标头][TCP/UDP标头][应用层数据包]

posted @ 2018-03-08 14:25  lvable  阅读(419)  评论(0编辑  收藏  举报