游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

Linux网络编程网络协议入门

  01。前言
  我们每天使用互联网,你是否想过,它是如何实现的?
  全世界几十亿台电脑,连接在一起,两两通信。北京的某一块网卡送出信号,深圳的另一块网卡居然就收到了,两者实际上根本不知道对方的物理位置,你不觉得这是很神奇的事情吗?
  为了使各种不同的计算机之间可以互联,ARPANet指定了一套计算机通信协议,即TCPIP协议(族),它们对电脑如何连接和组网,做出了详尽的规定。理解了这些协议,就理解了网络的原理。
  因为这些协议实在太复杂、太庞大,这里只是整理一个简洁的框架,帮助大家从总体上把握它们。
  02。概述
  2。1模型
  为了减少协议设计的复杂性,大多数网络模型均采用分层的方式来组织。每一层都有自己的功能,就像建筑物一样,每一层都靠下一层支持。每一层利用下一层提供的服务来为上一层提供服务,本层服务的实现细节对上层屏蔽。
  用户接触到的,只是最上面的一层,根本没有感觉到下面的层。要理解互联网,必须从最下层开始,自下而上理解每一层的功能。
  如何分层有不同的模型,有的模型分七层(不常用),有的分四层(现在就是用这种),如下图:
  为了方便理解,我们把它分成五层:
  越下面的层,越靠近硬件;越上面的层,越靠近用户。至于每一层叫什么名字,其实并不重要(面试的时候,面试官可能会问每一层的名字)。只需要知道,互联网分成若干层即可。
  2。2层与协议
  每一层都是为了完成一种功能。为了实现这些功能,就需要大家都遵守共同的规则。大家都遵守这规则,就叫做协议(protocol)。
  网络的每一层,都定义了很多协议。这些协议的总称,叫TCPIP协议。它是Internet最基本的协议、Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成。这里需要注意,TCPIP协议是一个大家族,不仅仅只有TCP和IP协议,它还包括其它的协议,如下图:
  03。物理层
  我们从最底下的一层开始。
  电脑要组网,第一件事要干什么?当然是先把电脑连起来,可以用光缆、电缆、双绞线、无线电波等方式。
  这就叫做物理层,它就是把电脑连接起来的物理手段。它主要规定了网络的一些电气特性,作用是负责传送0和1的电信号。
  04。数据链路层
  4。1定义
  单纯的0和1没有任何意义,必须规定解读方式:多少个电信号算一组?每个信号位有何意义?这就是链接层的功能,它在物理层的上方,确定了0和1的分组方式。
  4。2以太网协议
  早期的时候,每家公司都有自己的电信号分组方式。逐渐地,一种叫做以太网(Ethernet)的协议,占据了主导地位。
  以太网规定,一组电信号构成一个数据包,叫做帧(Frame)。每一帧分成两个部分:标头(Head)和数据(Data)。
  标头包含数据包的一些说明项,比如发送者、接受者、数据类型等等;数据则是数据包的具体内容。
  标头的长度,固定为18字节。数据的长度,最短为46字节,最长为1500字节。因此,整个帧最短为64字节,最长为1518字节。如果数据很长,就必须分割成多个帧进行发送。
  4。3MAC地址
  上面提到,以太网数据包的标头,包含了发送者和接受者的信息。那么,发送者和接受者是如何标识呢?
  以太网规定,连入网络的所有设备,都必须具有网卡接口。数据包必须是从一块网卡,传送到另一块网卡。通过网卡能够使不同的计算机之间连接,从而完成数据通信等功能。网卡的地址,就是数据包的发送地址和接收地址,这叫做MAC地址。
  MAC地址,用于标识网络设备,类似于身份证号。每块网卡出厂的时候,都有一个全世界独一无二的MAC地址(理论上全球唯一),长度是48个二进制位,通常用12个十六进制数表示。
  有了MAC地址,就可以定位网卡和数据包的路径了。
  4。4广播
  定义地址只是第一步,后面还有更多的步骤。
  首先,一块网卡怎么会知道另一块网卡的MAC地址?
  回答是有一种ARP协议,可以解决这个问题。这个留到后面介绍,这里只需要知道,以太网数据包必须知道接收方的MAC地址,然后才能发送。
  其次,就算有了MAC地址,系统怎样才能把数据包准确送到接收方?
  回答是以太网采用了一种很原始的方式,它不是把数据包准确送到接收方,而是向本网络内所有计算机发送,让每台计算机自己判断,是否为接收方。
  上图中,1号计算机向2号计算机发送一个数据包,同一个子网络的3号、4号、5号计算机都会收到这个包。它们读取这个包的标头,找到接收方的MAC地址,然后与自身的MAC地址相比较,如果两者相同,就接受这个包,做进一步处理,否则就丢弃这个包。这种发送方式就叫做广播(broadcasting)。
  有了数据包的定义、网卡的MAC地址、广播的发送方式,链接层就可以在多台计算机之间传送数据了。
  05。网络层
  5。1网络层的由来
  以太网协议,依靠MAC地址发送数据。理论上,单单依靠MAC地址,北京的网卡就可以找到深圳的网卡了,技术上是可以实现的。
  但是,这样做有一个重大的缺点。以太网采用广播方式发送数据包,所有成员人手一包,不仅效率低,而且局限在发送者所在的子网络。也就是说,如果两台计算机不在同一个子网络,广播是传不过去的。这种设计是合理的,否则互联网上每一台计算机都会收到所有包,那会引起灾难(广播风暴)。
  互联网是无数子网络共同组成的一个巨型网络,很像想象北京和深圳的电脑会在同一个子网络,这几乎是不可能的。
  因此,必须找到一种方法,能够区分哪些MAC地址属于同一个子网络,哪些不是。如果是同一个子网络,就采用广播方式发送,否则就采用路由方式发送。(路由就相当于现象生活中的路标,规定这些数据包的走向,就是指如何向不同的子网络分发数据包,这是一个很大的主题,本文不涉及。)遗憾的是,MAC地址本身无法做到这一点。它只与厂商有关,与所处网络无关。
  这就导致了网络层的诞生。它的作用是引进一套新的地址,使得我们能够区分不同的计算机是否属于同一个子网络。这套地址就叫做网络地址,简称网址。
  于是,网络层出现以后,每台计算机有了两种地址,一种是MAC地址,另一种是网络地址。两种地址之间没有任何联系,MAC地址是绑定在网卡上的,网络地址则是管理员分配的,它们只是随机组合在一起。
  网络地址帮助我们确定计算机所在的子网络,MAC地址则将数据包送到该子网络中的目标网卡。因此,从逻辑上可以推断,必定是先处理网络地址,然后再处理MAC地址。
  5。2IP协议
  规定网络地址的协议,叫做IP协议。它所定义的地址,就被称为IP地址。
  目前,广泛采用的是IP协议第四版,简称IPv4。这个版本规定,网络地址由32个二进制位组成。
  习惯上,我们用分成四段的十进制数表示IP地址,从0。0。0。0一直到255。255。255。255。
  互联网上的每一台计算机,都会分配到一个IP地址。这个地址分成两个部分,前一部分代表网络号,后一部分代表主机号。
  比如,IP地址172。16。254。1,这是一个32位的地址,假定它的网络部分是前24位(172。16。254),那么主机部分就是后8位(最后的那个1)。处于同一个子网络的电脑,它们IP地址的网络部分必定是相同的,也就是说172。16。254。2应该与172。16。254。1处在同一个子网络。
  但是,问题在于单单从IP地址,我们无法判断网络部分。还是以172。16。254。1为例,它的网络部分,到底是前24位,还是前16位,甚至前28位,从IP地址上是看不出来的。
  那么,怎样才能从IP地址,判断两台计算机是否属于同一个子网络呢?这就要用到另一个参数子网掩码(subnetmask)。
  所谓子网掩码,就是表示子网络特征的一个参数。它在形式上等同于IP地址,也是一个32位二进制数字,它的网络部分全部为1,主机部分全部为0,并且1和0分别连续。
  比如,IP地址172。16。254。1,如果已知网络部分是前24位,主机部分是后8位,那么子网络掩码就是11111111。11111111。11111111。00000000,写成十进制就是255。255。255。0。
  我们可以通过子网掩码来区分哪部分是子网ID,哪部分为主机ID。IP地址和子网掩码中1相与即可得到子网ID,IP地址和子网掩码中0相或,即可得到主机ID。
  知道子网掩码,我们就能判断,任意两个IP地址是否处在同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则为0),然后比较结果是否相同,如果是的话,就表明它们在同一个子网络中,否则就不是。
  比如,已知IP地址172。16。254。1和172。16。254。233的子网掩码都是255。255。255。0,请问它们是否在同一个子网络?两者与子网掩码分别进行AND运算,结果都是172。16。254。0,因此它们在同一个子网络。
  总结一下,IP协议的作用主要有两个,一个是为每一台计算机分配IP地址,另一个是确定哪些地址在同一个子网络。
  5。3IP数据包
  根据IP协议发送的数据,就叫做IP数据包。不难想象,其中必定包括IP地址信息。
  但是前面说过,以太网数据包只包含MAC地址,并没有IP地址的栏位。那么是否需要修改数据定义,再添加一个栏位呢?
  回答是不需要,我们可以把IP数据包直接放进以太网数据包的数据部分,因此完全不用修改以太网的规格。这就是互联网分层结构的好处:上层的变动完全不涉及下层的结构。
  具体来说,IP数据包也分为标头和数据两个部分。
  标头部分主要包括版本、长度、IP地址等信息,数据部分则是IP数据包的具体内容。它放进以太网数据包后,以太网数据包就变成了下面这样。
  IP数据包的标头部分的长度为20到60字节,整个数据包的总长度最大为65,535字节。因此,理论上,一个IP数据包的数据部分,最长为65,515字节。前面说过,以太网数据包的数据部分,最长只有1500字节。因此,如果IP数据包超过了1500字节,它就需要分割成几个以太网数据包,分开发送了。
  5。4ARP协议
  关于网络层,还有最后一点需要说明。
  因为IP数据包是放在以太网数据包里发送的,所以我们必须同时知道两个地址,一个是对方的MAC地址,另一个是对方的IP地址。通常情况下,对方的IP地址是已知的(后文会解释),但是我们不知道它的MAC地址。
  所以,我们需要一种机制,能够从IP地址得到MAC地址。
  这里又可以分成两种情况。第一种情况,如果两台主机不在同一个子网络,那么事实上没有办法得到对方的MAC地址,只能把数据包传送到两个子网络连接处的网关(gateway),让网关去处理。
  第二种情况,如果两台主机在同一个子网络,那么我们可以用ARP协议,得到对方的MAC地址。ARP协议也是发出一个数据包(包含在以太网数据包中),其中包含它所要查询主机的IP地址,在对方的MAC地址这一栏,填的是FF:FF:FF:FF:FF:FF,表示这是一个广播地址。它所在子网络的每一台主机,都会收到这个数据包,从中取出IP地址,与自身的IP地址进行比较。如果两者相同,都做出回复,向对方报告自己的MAC地址,否则就丢弃这个包。
  总之,有了ARP协议之后,我们就可以得到同一个子网络内的主机MAC地址,可以把数据包发送到任意一台主机之上了。
  06。传输层
  6。1传输层的由来
  有了MAC地址和IP地址,我们已经可以在互联网上任意两台主机上建立通信。
  接下来的问题是,同一台主机上有许多程序都需要用到网络,比如,你一边浏览网页,一边与朋友在线聊天。当一个数据包从互联网上发来的时候,你怎么知道,它是表示网页的内容,还是表示在线聊天的内容?
  也就是说,我们还需要一个参数,表示这个数据包到底供哪个程序(进程)使用。这个参数就叫做端口(port),它其实是每一个使用网卡的程序的编号。每个数据包都发到主机的特定端口,所以不同的程序就能取到自己所需要的数据。
  端口是0到65535之间的一个整数,正好16个二进制位。0到1023的端口被系统占用,用户只能选用大于1023的端口。不管是浏览网页还是在线聊天,应用程序会随机选用一个端口,然后与服务器的相应端口联系。
  传输层的功能,就是建立端口到端口的通信。相比之下,网络层的功能是建立主机到主机的通信。只要确定主机和端口,我们就能实现程序之间的交流。因此,Unix系统就把主机端口,叫做套接字(socket)。有了它,就可以进行网络应用程序开发了。
  6。2UDP协议
  现在,我们必须在数据包中加入端口信息,这就需要新的协议。最简单的实现叫做UDP协议,它的格式几乎就是在数据前面,加上端口号。
  UDP数据包,也是由标头和数据两部分组成。
  标头部分主要定义了发出端口和接收端口,数据部分就是具体的内容。然后,把整个UDP数据包放入IP数据包的数据部分,而前面说过,IP数据包又是放在以太网数据包之中的,所以整个以太网数据包现在变成了下面这样:
  UDP数据包非常简单,标头部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。
  6。3TCP协议
  UDP协议的优点是比较简单,容易实现,但是缺点是可靠性较差,一旦数据包发出,无法知道对方是否收到。
  为了解决这个问题,提高网络可靠性,TCP协议就诞生了。这个协议非常复杂,但可以近似认为,它就是有确认机制的UDP协议,每发出一个数据包都要求确认。如果有一个数据包遗失,就收不到确认,发出方就知道有必要重发这个数据包了。
  因此,TCP协议能够确保数据不会遗失。它的缺点是过程复杂、实现困难、消耗较多的资源。
  TCP数据包和UDP数据包一样,都是内嵌在IP数据包的数据部分。TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
  07。应用层
  应用程序收到传输层的数据,接下来就要进行解读。由于互联网是开放架构,数据来源五花八门,必须事先规定好格式,否则根本无法解读。
  应用层的作用,就是规定应用程序的数据格式。
  举例来说,TCP协议可以为各种各样的程序传递数据,比如Email、WWW、FTP等等。那么,必须有不同协议规定电子邮件、网页、FTP数据的格式,这些应用程序协议就构成了应用层。
  这是最高的一层,直接面对用户。它的数据就放在TCP数据包的数据部分。因此,现在的以太网的数据就变成下面这样。

杨丞琳真大胆,五五分造型配死亡刘海,网友这时尚真心不懂一说起台湾偶像剧女神,杨丞琳肯定少不了,90后的童年回忆之一,当年看得津津有味。而且浙西台湾女神真的很会保养,90后都长大成年了,她们也没变老多少,杨丞琳被称为是可爱教主。虽然……航班信息丨西藏各机场9月8日航班情况提示尊敬的各位旅客:2022年9月8日,西藏各机场计划执行进出港航班8架次,具体如下:一、拉萨贡嘎机场(一)出港航班1。航班号:四川航空3U8634拉……韩系旗舰轿车即将全新上市,帅过亚洲龙,谁还买凯美瑞?在国内的中型轿车市场,德系双雄和日系三强长期占据着市场的主导位置,并且随着这些车型相继更新换代,继续拿出较为强势的市场表现。而除了这些车型,现代索纳塔也曾经创造出辉煌的成绩,在……华为怎么样今天更想借着HuaweiMate10发布的时机,说说所谓智慧手机,是概念还是真实的存在这个话题。最初看见智慧手机这个名词的时候,我的内心是有点不屑的。商业化品牌总会时不时……租赁假结婚花钱过户换取京牌这几招都不靠谱在一线城市买车实在不是件简单的事,比如在北京。原因在于一牌难求!北京车牌生意火爆最近一次北京市小客车摇号公布的数据显示,2367人抢一个普通车指标,难度创历史新高。……刚拿到驾照,有必要买好车吗?直接买新车,不建议买二手车,没必要,而且更浪费钱。我是拿了驾照两年后买的新车,我的技术可能比刚拿驾照的新手司机都还菜,因为两年过去了,我早把当年在驾校学的理论以及实操几乎忘得一……划重点!自驾游,这些事你一定要知道!在秋高气爽美景无限的秋季自驾去感受初秋的美好一辆车三五好友换个地方玩手机哦!不是旅行!你准备好了吗?道路千万条,安全第一条!1。选择正……有没有公认质量最好的SUV推荐?我这三个月试驾过47款SUV,可以给你最中肯的意见!干货满满,绝对不会让你失望!NO。1,劳斯莱斯库里南。这款车做工细致,整车豪华,也有很多前沿科技和人工智能的元素在。驾……可不可以推荐一款落地30万左右,刹车40米内,麋鹿80以上,2040万车型初步了解如下第一,福特锐界,这台车我是2017年去店看过,当时顺路看的都是中大型suv,包括大众途昂,丰田汉兰达,本田冠道。这台车外观一般,内饰也一般,没有……奥运知识科普互动哪届奥运会被称为跨越两洲的大赛?奥运知识科普互动被称为跨越两洲的大赛?奥运会哪届奥运会被称为跨越两洲的大赛?各位朋友们,大家好。我是厦门奥林匹克博物馆志愿者陈昱含,今天为大家带来的奥运知识科……红旗汽车作为国产车的劳斯莱斯,以后能否成为国民神车?红旗汽车车型覆盖面越来越全面,除了大家熟知的轿车H5,H7,H9,城市SUV车型HS5,HS7纯电动大型SUV车型EHS9等!又在西藏看见红旗新车型测试,属大型SUV车型!非常……一切办完落地上路在8万之内,要自动挡省油毛病少的家用车,有哪宗瑞说车,实话实说。帮助头条朋友们选车,算车,聊车。有汽车问题的朋友们,可以加我好友并邀请我回答。宗瑞肯定知无不言,言无不尽。随着生活水平的提高,很多家庭都打算买一辆小车……
白酒利润有多高?100斤粮食能酿多少酒?62岁酿酒师不小心说如今,越来越多人开始重视白酒,亲朋聚会要喝酒,宴请领导要喝酒,生意往来也要喝酒。适当饮酒除了能够舒缓身心、释放压力,而且还能促进与他人的感情。但不同场合所用的酒也各不相同……离异父亲扔给幼年儿子一部手机后果有多严重?目的又是什么?有人问:父母离异后孩子和谁亲?每个家庭情况不一样,孩子和谁亲也各不相同,用一句极通俗的话说,谁对孩子好,孩子就对谁亲。但是孩子越小,越不知道什么是对他好,什么是对他不好,也许越……持续推进高水平开放,为全球复苏作出中国贡献周密商务部国际贸易经济合作研究院研究员今年是改革开放45周年。45年来,中国不仅打开了大门,而且打扫好了房间,按照国际规则与各方利益诉求为外资企业创造良好发展环境,帮助中……荷兰库肯霍夫公园对游客开放3月23日,在荷兰利瑟的库肯霍夫公园,首批入园游客获赠郁金香花束。库肯霍夫公园位于荷兰首都阿姆斯特丹附近的利瑟小镇,是荷兰最受欢迎的旅游景点之一,也是全球著名的郁金香花园……谷歌安卓的市场份额或将进一步下降,或许已后悔对中国手机的做法据外媒披露的调查数据显示有49的安卓手机用户正在考虑选购iPhone,越来越多的消费者认可苹果,这对于市场份额已跌穿七成的谷歌安卓系统来说无疑是又一轮的打击。外媒的调查对……印度成功发射一箭36星所有36颗卫星已被送入近地轨道来源:新华网印度空间研究组织23日宣布,印度当天使用LVM3运载火箭将36颗通信卫星成功送入预定轨道。这枚火箭于当地时间23日0时7分(北京时间23日2时37分)在……虾别总炒着吃,试试这样做,只要掌握好技巧,香滑鲜美无一点腥味冬日生活打卡季大家好,我是Allie,美好的一天从营养早餐开始,吃好早餐,一整天都精力充沛。早餐吃好、午餐吃饱、晚餐吃少,低油低盐、清淡饮食,这是我多年的习惯,希望和朋友……输越南惨案一周年,国足继续解散中去年今日,也是大年初一,在12强赛第8轮,国足客场1比3不敌越南,彻底无缘2022年卡塔尔世界杯。而越南也历史性获得本届他们在12强赛中的首场胜利,这也是东南亚球队首次在……8大健康食物公布,海参未入榜?中老年人可以多吃8大健康食物公布,海参未入榜?中老年人要多吃,好吃且营养。日常生活中的饮食,对于人们的健康起着非常关键的作用。尤其是一些中老年人消化能力下降,更应该多加注意。老年人年纪大了,在……锤扁网约车,你得到啥?司机回应记者暗访所谓的逃单江湖图无关近期,一篇关于网约车司机的文章在网上热传,极具煽情的文字(多用排比问句),模糊性的真实案例,还冠以暗访之名,无图无真相,将网约车的极个别事情无限放大,试图激起广大看……砍单430亿颗芯片后,中芯国际投资505亿建厂,台积电慌了吗在全球半导体代工市场,台积电市场份额最多,是当之无愧的老大,目前已经开始3nm量产。排第二的三星实力也不弱,也已经研发到了3nm,可以说是台积电的最主要竞争对手。中国大陆……周杰伦女儿金发黑裙,6000万豪华轿车,只为送女儿参加考试大家都知道周杰伦自从结婚后,就很少出现在公开场合,他现在比起拼事业,更多的是希望能够待在家人身边。尤其是待在自己女儿身边,周杰伦是女儿奴的事情,相信没人不知道。自从……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网