网络协议——TCP/IP,MAC,网络层,传输层,应用层

网络体系结构通常是由两种模型来表示,一个是7层的OSI参考模型,一个是5层的TCP/IP参考模型。

OSI七层模型:

TCP/IP五层模型:

TCP/IP模型由于其协议被广为流传,乃至后来被Internet使用,所以我们后面也主要围绕TCP/IP模型展开。

先来看一下模型各层都是用来干嘛的。其中,越靠下的层离物理硬件越近,越靠上的层离用户越近。

物理层:代表网络中的电气特性,关注通信信道上传输的原始比特(0/1);

数据链路层:将电信号以分组的方式(帧)来传递。以太网协议就是运行在该层;

网络层:任务是允许主机将数据包注入到任何网络中,并让这些数据包独立到达接收方;

传输层:允许源主机与目标主机上的对等实体进行对话;

应用层:包含所有的高层协议;

TCP/IP模型中的协议:

应用层 HTTP SMTP RTP DNS

传输层 TCP UDP

网络层 IP ICMP

链路层 DSL SONET 802.11 Ethernet

要想知道网络中是怎么通信的

比如应用层要下载一个网页的话,一直往下会是什么

就要最底层开始往上看

物理层:就是实体层,

表示怎么用光缆(电缆,无线电)等方式将互联网连接起来,规定了网络中的电气特性,负责传输0,1电信号。

但是单独传输电信号没有意义

于是出现了MAC层

它规定了电信号0,1的分组方式。后来就有了以太网协议,规定了一组电信号构成了一个数据包——帧(head+data);

数据很长时会分割成多个帧进行发送。

数据包在设备之间的传输实际上是网卡与网卡之间的传输,而每一个网卡在出厂时都有唯一的一个地址,即MAC地址。MAC地址是由48个二进制数组成,通常写成12个16进制数。其中前6个16进制数代表厂商编号,后6个代表厂商流水号。

一个网卡要知道另外一个网卡的MAC地址,需要依赖ARP协议。

以太网需要知道接收方的MAC地址才能发送数据包 。要将数据包发送给接收包,以太网中将数据包广播给所有的计算机,每个计算机收到数据包后,读取包头找到接收方的MAC地址,与自身的MAC地址对比,相同就接收这个数据包,否则就丢弃。于是,以太网就通过广播的方式就行了数据传递。

但是,不同的子网之间是无法广播的。

而互联网实际上就是超多子网的组合,通过路由(网关)向不同的子网发送数据包。

于是,就进入到了网络层。

网络层能够区分不同的计算机是否在同一个子网下。这是由于,计算机不仅有MAC地址,还有IP地址。其中MAC地址是直接绑定在网卡上的,而IP地址则由管理员分配。数据包先通过IP地址来区分子网,再通过MAC地址将数据包发送到指定计算机上。

IP地址由32个二进制数表示,通常写成4个10进制数,前面几位表示网络,前几位相同话就处于同一个子网当中。后面几位表示主机。那么到底是前几位,需要由子网掩码来确定,它是表示网络特征的参数,也是一个32位2进制数,与IP地址形式相似。

其中,IP地址对应的子网掩码中,网络部分全为1,代表主机的部分全为0 。

举个例子,IP地址为192.168.1.105;子网掩码为255.255.255.0

则192.168.1代表着子网,105代表主机。

IP数据包也是由head+data的形式组成

其中,head长度为20-60字节,数据包总长度不超过65535字节。将其放在以太网数据包的data部分。而这一部分不超过1500字节,所以对于超出数据长度的部分,IP数据包就要被分开发送。

这里我们就知道数据包是如何从一个主机传到另一个主机上了:先判断是否处于同一个子网,不在同一个子网的情况下,将数据包发给两个子网连接的网关处,再通过ARP协议得到对方的MAC地址,发送数据包。

那么,主机上的不同的程序是如何被区分的呢。这里就到了传输层。网络层可以看做主机与主机IP之间的通信,那么传输层就是端口与端口之间的通信。IP地址和端口的组合就是socket(套接字)

端口是每个使用网卡的程序编号。每个数据包都发到主机的特定端口上,不同程序读取自己所需的数据。

端口的取值为0-65535,由16个二进制数表示,其中,0-1023是系统占用的端口号。

对于传输层的协议,就是TCP和UDP协议。

TCP协议有确认机制,传输过程更可靠。两者相比较:

UDP TCP

简单,可靠性差 保证数据不丢失,过程复杂

1.无连接

2.不保证可靠

3.实时性强

4.一对一,多对一,多对多

5。资源消耗少

1.面向连接

2.提供可靠服务

3.点对点

4.资源消耗较高

传输层过后就是应用层, 它是规定了应用程序的数据格式。

这里整个数据包就可以看成以下形式:

head head head data

以太网标头 IP标头 TCP标头 应用层数据包

而对于网络传输中,IP地址又分为静态IP和动态IP两种。

静态IP地址是长期分配给一台计算机或网络设备使用的 IP 地址,而动态IP是在需要的时候才进行IP地址分配的方式。由于IP地址资源很宝贵,因此大部分用户上网都是使用动态IP地址的。而动态IP用到的DHCP协议就是建立在UDP上的应用层协议。该形式下的数据包格式为

head head head data

以太网标头 IP标头 UDP标头 DHCP数据包

其中,发送方和接收方的端口地址则由DHCP协议规定为67和68,IP标头中发送方和接收方的IP地址都不知道,分别填入0.0.0.0和255.255.255.255。以太网标头的发送方是主机MAC地址,接收方是DHCP服务器的MAC地址(不知道,填入广播地址FF:FF:FF:FF:FF:FF)。数据包以广播的形式发出,通过IP地址等判断,再发给DHCP服务器,服务器将分配的地址返给主机。

对于网页的访问,通过域名服务器(DNS )将网址翻译为IP地址。

head head head data

以太网标头 IP标头 UDP标头 DNS数据包

其中端口号为53

HTTP协议通常是建立在TCP之上的请求-响应协议。

head head head data

以太网标头 IP标头 TCP标头 HTTP数据包

其中接收方端口号为80 ,发送方端口号随机。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值