网络五层模型
OSI七层主要协议:
物理层:RJ45、CLOCK、IEEE802.3(中继器、集线器)
数据链路层:PPP、FR、HDLC、VLAN、MAC(网桥、交换机)
网络层:IP、ICMP、ARP、RARP、OSPF、IPX、RIP、IGRP(交换机)
传输层:TCP、UDP、SPX
会话层:NFS、SQL、NETBIOS、RPC
表示层:JPEG、MPEG、ASII
应用层:FTP、DNS、Telnet、SMTP、HTTP、WWW、NFS
TCP/IP五层模型从下到上(将OSI模型中的会话层,表示层合并到应用层中):
物理层
通过物理手段(网线,光纤,无线)将设备连接在一起,传输0/1电信号(比特流).
链路层
确定了0/1电信号(比特流)的组合方式
以太网协议:规定一组电信号为一个数据包,叫做‘帧‘,每个帧由两部分组成:标头(Head)(18个字节)和数据(Data)(46-1500个字节), 标头中包含发送者MAC地址(6个字节),接受者的MAC地址(6个字节),数据类型(6个字节).
广播: 在同一子网络(局域网)中,计算机通过广播来通信,即向同子网中全部计算机发送数据包,其它计算机根据数据包中接收者的MAC地址来判断是否接收数据包
接收者的MAC地址可以通过ARP协议获得,这是网络层的一个协议
ARP协议: 在接收者的MAC地址栏中,填入‘FF:FF:FF:FF:FF:FF‘,表示这是一个‘广播‘地址,在这子网中的每台计算机都会收到这个数据包,从其中取出IP地址,再与自身IP比较,相同则返回自身的MAC地址,不同就丢弃这个包
网络层
建立‘主机到主机‘的通信
MAC地址的局限性:因为MAC地址是只能在子网络中发送数据包,不同子网络就不能通信了,而且采用的是广播的方式,同一子网络中每个计算机都会收到所有包,这可能造成广播风暴.
IP协议:给计算机分配一个网络地址,用来区分不同的计算机是否是属于同一个子网络,根据网络地址确定计算机所在的子网络和子网络中的位置,再根据MAC地址将数据包送到该子网络的目标网卡. 根据IP协议发送的数据包叫做IP数据包,IP数据包放在‘帧‘的‘数据‘中, ip数据包也分为‘标头‘(20-60个字节)和‘数据‘(包括标头最大65535个字节)两部分,标头主要包括版本,长度,IP地址等
IP地址(IPv4): 由4个字节组成,共32位,通常用十进制数表示,从0.0.0.0到255.255.255.255,将IPv4地址分为ABC三类:
A类地址由一个字节的网络地址和三个字节的主机地址组成,网络地址的最高位必须是‘0‘,即: 1.0.0.1-126.255.255.254
B类地址由两个字节的网络地址和两个字节的主机地址组成,网络地址的最高位必须是‘10‘,即: 128.1.0.1-191.255.255.254
C类地址由三个字节的网络地址和一个字节的主机地址组成,网络地址的最高位必须是‘110‘,即: 192.0.1.1-223.255.255.254
子网掩码: 用来判断两个ip是否属于同一个子网络,也是32位, 其网络部分全部为1,主机部分全为0, 将ip和其子网掩码进行‘与运算‘, 当结果相同时,它们就在同一个子网络中
默认网关:路由器的ip地址,通过路由器进行转发数据包
DNS:DNS服务器的ip地址,DNS服务器可以根据域名返回其IP地址,这样在浏览器中输入网址,计算机就知道请求网址的服务器的ip是什么了.
传输层
建立‘端口到端口‘的通信
数据包发过来需要知道是发给那个进程的,通过设置‘端口‘可以让不同的程序取得各自的数据包,端口范围:0-65535, 其中前1023个端口被系统占用.
UDP协议:在数据包中加入端口信息, UDP数据包分‘标头‘(八个字节)和‘数据‘(加标头不超过65535个字节), UDP数据包放在IP数据包的‘数据‘中,标头主要包括发出端口和接收端口, UDP协议的优点是简单,容易实现,缺点是可靠性差,数据可能会有丢失.
TCP协议: 相当于有确认机制的UDP协议, 其优点是能确保数据不丢失, 缺点是过程复杂,实现困难,消耗资源多, TCP数据包没有长度限制,但通常不会超过IP数据包的长度
应用层
规定应用程序的数据格式
TCP/UDP协议可以传递各种程序的数据包,如邮箱, 网页, FTP等等,所以就需要不同的协议来规定数据的格式,应用层就是由这些协议构成,它的数据包放在UDP包/TCP包的‘数据‘中.
socket:在应用层和传输层之间的一个抽象层,它把TCP/IP层复杂的操作封装成几个简单的接口供应用层调用,从而实现进程在网络中的通信
参考来自: https://www.cnblogs.com/qwksjy/p/11466450.html
http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html