IOS网络编程理解—网络的理解

首先我大概把网络分解为物理层,链路层,网络层,数据传输层,应用层这五层,计算机之间的通信就是层与层之间的通信,每个层之间都有特定暗号(协议),也就像是两个人说话一样,每个人说的都是相同语言,这样才知道彼此在说什么,像我我这样英语差的人,我对外国人说中文,他对我说英语,后果可想而知,那就是天上一句地下一句,我问:"吃饭了吗?",他回答:”我不喝水“。如果我们都懂汉语那就可以正常交流了。

物理层:如果把网络比作一个具有五层体系结构的团体,那么应用层就是老大,在金字塔最上层人,数据传输层就像老二以此类推,物理层就像小弟了,上面都是下命令的,只有小弟才是跑腿的,为什么这么说,网络进行通信传输的是什么,是汉字或者英文,数据报,还是帧,还是比特(二进制流)啊,很明显是传输的是二进制流,应为计算机只认识二进制,通信之间的二进制流是如何被传出去的呢?很好理解,在社团中脏活累活都是谁去做的啊,当然是小弟了啊。所以这些二进制(以电信号形式)都是物理层去传输的,而物理层是通过什么去传递二进制的呢,你想一下,你的计算机是通过什么上网的,很明显是网线啊,所以物理层主要是主要是通过包括电缆、光纤、无线信道等,互连设备指是计算机和调制解调器之间的互连设备,如各种插头、插座等媒体进行传输的,这些媒体就像大道,在这大道上有个苦逼人在骑着马(比特流)为老大送信息。

链路层:那么这个老四是干嘛的呢,老四就比较舒服了,他要做的就是将上面来的文件盖上自己的章(封装),这份文件是给谁的(对方的mac地址

)写在帧头上,然后扔给苦逼的老五,或者将老五送过来的电信号去掉帧头交给老三,老四只认识帧,其他都不认识 。就像我只认识汉字一样

网络层:老三他主要把老二给他的文件封装成数据报交给老四(这个相当与盖自己的章),或者收到链路层的传过来的数据去掉数据包头将它给老二,老三他是通过网络寻址找到计算机的,其实他实现的计算机的之间的通信。老三是怎么靠什么来寻址的,他是靠ip地址来找到计算机的

数据传输层:老二也是对老大发过来的文件盖上自己的章(就是加上自己的协议头),对老三的传过来的文件剔除这层所添加的协议头交给老大,我们知道计算机可以同时运行多个程序,这时候我只知道将信息发给哪个计算机是不行的,我们得知道信息是发给哪个程序的,如果你和别人聊天呢,对方发过来的QQ语音信息,被QQ音乐播放器播放了,你乐意吗,肯定不乐意,所以我需要一个id来确定我们信息是用来发给谁的(哪个程序),老二需要关心的是具体发给你哪个程序,我们用端口来标注同一计算机上不同的 程序,而网络层关心的是发给哪个计算机,不管是哪个程序的,在数据传输层有两个协议,一个tcp,和UDP 协议,这两个协议区别是我用一个比喻来说:比如你要给你一个朋友寄吃的东西,有两种人一种人就是在寄之前和朋友打电话问一下朋友在什么时候是不是在某个地方不出去,确认朋友能收到自己寄出去的东西,朋友收到东西也会打电话谢谢你,这就是tcp

,还有一种人就是在寄东西之前不和朋友打电话,只管寄东西,寄出去之后也不去管,这就是UDP,很明显第二种人他更省事对吧,不需要打电话啰啰嗦嗦,但是这种人做事实在不靠谱,因为寄出的吃的东西会丢包啊,第一种就比较靠谱,也比较啰嗦对吧,其实socket通信也是就是这层上的通信因为socket中有ip地址和端口,它实际上就是两个程序之间的通信

应用层:在这一层主要利用程序来满足用户的需求,也是用户和网络的接口,在这一层有个很重要的协议就是http协议,我们用浏览网页是利用浏览器这个程序来达到我们想要的需求,包括QQ是不是也是我用来上网的程序呢,这些应用程序其实都在这个层。这个层实际上实现的就是两个用户再交流。

总结:其实用户利用计算机与另外用户进行交流,就好比寄东西,你给你朋友寄东西,而网络就是快递公司。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值