zoukankan      html  css  js  c++  java
  • 互联网协议基本知识

    参考
    互联网协议入门(一)- 阮一峰
    互联网协议入门(二)- 阮一峰
    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标头][应用层数据包]

  • 相关阅读:
    CString to char*
    修改mfc中的图标的问题
    MFC Class Wizard要到这里来找
    多文档情形下,窗口的重绘
    64位的ubuntu跑不了32位下编译出来的代码,可是我就是想跑啊
    ubuntu不能执行某个执行文件,这个叫权限不够
    碰到了在ubuntu下不能读windows盘符的问题——ubuntu使用心得
    画个多边形来,CDC
    如果要在mFC客户区添加控件怎么办
    饿汉单例模式实例——取快递
  • 原文地址:https://www.cnblogs.com/R0SS/p/8528268.html
Copyright © 2011-2022 走看看