⼀、OIS七层模型及数据传输过程
实现两台机器互联,机器和机器之间是怎么通信的呢
互联物理链路,物理介质。⽹线,光纤,⽆线电波等等
形式存在:0101000⼆进制电信号----⽐特流
这只是实现联通,并没有什么意思,要变成有意义的数据要通过数据链路层
对⽐特流进⾏分组,对⼆进制8个为⼀组形成字节,依次按顺序发送数据-经过分组之后的数据叫做----帧
但是不知道发送给谁,因此定义了⼀个MAC地址-⽹卡-相当于⾝份证唯⼀的
⽤来标识我这个机器的⼀个物理地址寄件⼈(MAC地址)-收件⼈(⽬的地址)
我的A主机和你的F主机进⾏连接,中间隔了其他B、C、D、E...主机,这个时候要怎么实现通信呢,中间有很多路径,怎么选择最近的路径呢?对⽅电脑的MAC地址我怎么知道呢?
怎么知道对⽅的MAC地址呢,有⼀个ARP协议(address resolution Protocol),通过IP知晓对⽅MAC地址;
我们A主机和F主机中间隔了很多其他主机,可能A和F主机就不在同⼀个⼦⽹⾥⾯,也可能在,我们就需要去判断发送者和接收者是不是在通⼀个⼦⽹,这时候有⼀个IP协议
怎样选择最优路径?--组协议、路由协议、静态路由、动态路由协议(RIP、OSPF、BGP)。
这时候我们发送的数据特别多,特别⼤,需要很长时间怎么办呢。
对发送数据进⾏封装-- TCP、UDP协议,⼀个⼀个⼀次发送
⼀般都是⽤两个程序两个应⽤进⾏聊天(-)--定义端⼝查对应的应⽤程序进⾏处理
传输过程中⽹络中断了,重传?如果要重传,如何确保数据包正确完整
可以从校验点继续回复数据进⾏重传-⼤⽂件
每次断联不可能要你⼿动去连接,它实现了⾃动收发包的功能,还有⾃动寻址的功能
不同操作系统语法不⼀样,在不同的系统中进⾏通信
翻译⼯作,针对不同的系统如Windows、Linux、Mac,提供⼀种公共语⾔,进⾏通信
开始传上来的是字节流,不好识别也不好操作,应⽤层定义了各种应⽤的协议,规范应⽤程序的格式,为应⽤程序提供服务-HTTP、HTTPS、FTP、TFTP协议
TCP/IP四层协议和IOSI七层模型的区别
TCP/IP四层协议⽐较常⽤
我们在⽹址中输⼊百度:www.baidu是怎么访问到的呢
www.baidu先通过应⽤层进⼊传输层,在传输层封装⼀个TCP的头部端⼝,这个端⼝是⽤来判断⽤什么应⽤程序来处理。(HTTPS默认端⼝443)
然后发送给⽹络层,⽹络层给头部增加了⼀个IP信息,源主机和⽬的地址,寻址
然后发送给数据链路层,数据链路层给头部增加了源MAC地址
然后发送给物理层,物理层转化为⽐特流,发送给百度服务器
百度服务器收到信封⾃下⽽上,在物理层收到数据把⽐特流重组,就能够到数据链路层变成了以太帧的数据,拆封信封根据⾥⾯的源MAC地址传给⽹络层,⽹络层拆开发现有TCP的头部还含有端⼝,⽹络层看完发送给传输层,传输层根据的端⼝号443,交给对应的协议HTTPS,传输⾄应⽤层,应⽤层根据请求消息给你⼀个响应请求,响应请求就是⼀个百度页⾯
ARP-地址解析协议(Address Resolution Protocol),实现通过对⽅IP地址(域名)寻对⽅MAC地址ARP功能。
⽐较常⽤或者⽐较容易记住的是对⽅的ip地址,像MAC地址是不⽅便⼈们去记忆的,我们⾸先知道的是对⽅的ip地址或者是域名,通过ip解析成MAC地址,这个时候就需要⽤到ARP协议。tcpip四层模型和osi七层模型
1.主机A⾸先查看⾃⼰的ARP表,如果到了的主机B的MAXAC地址,则直接对IP数据包进⾏帧封装,发送给主机B;
2.如果主机A在ARP表中不到主机B的MAC地址,则将缓存该数据报⽂,然后以⼴播⽅式发送⼀个ARP请求报⽂。ARP请求报⽂中带上源IP地址和源MAC地址(主机A),⽬标IP地址和⽬标MAC地址为主机B的IP地址和全0的MAC地址。⼴播,该⽹段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进⾏处理。
3.主机B⽐较⾃⼰的IP地址和ARP请求报⽂中的⽬标IP地址,当两者相同时进⾏如下处理:将ARP请求报⽂中的发送端(即主机A)的IP地址和MAC地址存⼊⾃⼰的ARP表中。之后以单播⽅式发送ARP响应报⽂给主机A,其中包含了⾃⼰的MAC地址。
4.主机A收到ARP响应报⽂后,将主机B的MAC地址加⼊到⾃⼰的ARP表中以⽤于后续报⽂的转发,同时将IP数据包进⾏封装后发送出去。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论