范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

面试常考题一个请求是如何从浏览器到服务器的?

  作者:架构师之路
  toutiao.com/i6726119122301616647/
  互联网是人类历史上最伟大的发明创造之一,而构成互联网架构的核心在于TCP/IP协议。那么TCP/IP是如何工作的呢,我们先从数据包开始讲起。
  1、数据包
  一、HTTP请求和响应步骤
  http请求全过程
  请求
  响应
  以上完整表示了HTTP请求和响应的7个步骤,下面从TCP/IP协议模型的角度来理解HTTP请求和响应如何传递的。
  2、TCP/IP概述
  我们以RFC 1180中的图作为参考
  上图展示了四层TCP/IP协议图,其中network applications是应用程序,属于应用层;TCP和UDP主要是传输数据,属于传输层,TCP确保端对端的可靠传输并尽量确保网络健康运行,而UDP是简单不可靠传输;IP主要解决路由问题,属于网络层;ARP是网络地址转换,主要用来转换IP地址和MAC地址,介于数据链路层和网络层之间,可以看成2.5层;ENET在这里是数据链路层,网卡驱动属于这一层,主要做具体的介质传输,前面示例中的广告请求抓包就是在数据链路层抓取。
  值得注意的是,ARP在linux系统里属于网络层,而在RFC里是介于数据链路层和网络层之间。在《TCP/IP详解》一书里,ARP被放到了数据链路层。当解决实际问题的时候,我们应该把ARP放到网络层。
  上图给出使用TCPCopy在不同层发包的使用方法。如果TCPCopy从数据链路层发包,由于没有享受到ARP服务,用户需要在使用TCPCopy的时候额外加上MAC地址;而如果TCPCopy从IP层发包,则无需指定MAC地址。
  本课程主要讲述TCP相关案例,没有特殊说明的话,TCP特指传输层的TCP。
  3、什么是TCP
  TCP即传输控制协议,是一种面向连接的、可靠的、基于字节流的通信协议。TCP的主要工作是定义端口标识应用程序的身份,实现端对端的可靠通信,并进行拥塞控制,防止互联网崩塌。
  TCP有如下关键特性:
  由于TCP是面向连接的协议,所以是一种有状态的协议,而有状态的协议往往比较复杂,因此TCP学习起来也比较困难。
  通过状态图来查看一下TCP状态的复杂性:
  上图展示了错综复杂的TCP状态图,然而现实更加复杂。
  现实中的TCP状态图其实是这样的:
  图中,不仅SYN_RCVD状态能够收到reset数据包(图中RST,reset数据包是重置连接的数据包,可以使TCP状态瞬间变为CLOSED状态,而CLOSED状态是无法追踪的),而且FIN_WAIT1、FIN_WAIT2、ESTABLISHED、SYN_SENT和CLOSE_WAIT都能被reset数据包打回到CLOSED状态。不仅如此,TCP状态还受到超时的影响。例如Linux系统,一旦连接处于FIN_WAIT_2,在60秒内(默认)如果没有接收到对端的FIN数据包,系统会把此连接状态FIN_WAIT_2直接变到CLOSED状态。虽然Linux这样做是为了防止攻击,但这种超时就干掉连接状态的做法,很可能误杀了很多正常连接,从而使问题更加捉摸不定。
  在互联网领域,很多诡异的问题跟TCP状态有关系,课程后续会有较多案例来讲述这些灵异问题。
  4、端口
  当我们去连接服务器程序时,需要指明服务器端口。为什么需要端口呢?因为系统是通过端口来区分不同应用程序,TCP通过端口找到上层应用。
  需要注意的是,端口号是有限的,端口号最大为65535,能够利用的端口数量随配置而定。例如在压力测试过程中,一台机器可以利用的TCP端口是有限的,能够利用的连接(客户端端口,客户端IP,服务器应用端口,服务器IP地址)是有限的。为了解决这个问题,可以配置多IP地址来扩大可用连接数量。系统支持同一个端口,不同的IP地址来绑定不同的应用。Linux高版本系统下,在绑定同一个IP地址的情况下,我们还可以利用REUSEPORT机制使不同应用程序共享同一个监听端口,这对高性能服务器开发是非常有用的。我们开发的数据库中间件cetus就利用这个机制来解决短链接风暴的问题。
  5、IP
  网络层的主要工作是定义网络地址,区分网段,子网内MAC寻址,对不同子网的数据包进行路由。IP的主要作用就是在复杂的网络环境中将数据包发给最终的目标地址。
  IP是面向无连接的,是无状态的协议。IP为什么被设计成无状态呢?
  1. 无状态协议处理简单
  2. 通信之前无需建立连接
  3. TCP已经面向连接服务了,IP层可以委托TCP来解决面向连接的问题
  4. 由于不带有状态,互联网路由起来更加自由,容错性也更强
  值得注意的是,现实中的IP层往往都带有安全过滤,甚至有些路由器,防火墙等中途设备还会干涉应用(例如通过reset数据包来干涉TCP会话),为了更好的做安全检测,IP层还增加了connection tracking,在无状态协议上面来追踪上层连接。这种方式提高了安全性,但有时也会带来新的问题,我们后面有案例具体讲述connnection tracking带来的坑的故事。
  6、TCP Socket
  应用程序通过TCP socket接口来调用TCP服务,从而达到传递数据的目的。每一个TCP socket会被绑定到一个端口,TCP socket双向都可以通信,在发送数据的同时,还可以接收数据。
  值得注意的是,应用程序发送完数据,只代表通过TCP socket委托给TCP的工作已经完成,不代表发送给对端完毕,应用发送数据和TCP传输数据不是同步的。
  7、How TCP/IP Works
  当用户通过TCP socket接口发送请求后,TCP协议模块接管了请求传递,TCP先把请求拆分成一个个更小的数据分段(假设TCP offload没有开启的情况下),通过IP层发送出去。在IP层,这些数据分段会被封装成IP数据包,通过数据链路层发送给互联网(见下图)。这些数据包经过互联网的多个路由器到达目的地。由于IP网络是无状态的协议,每一个数据包走的路径可能不一样,而且到达的顺序也有可能不一样,这就要求对端的TCP需要重新组装数据包,以确保向应用层传递的数据是用户能够识别的用户请求,这样服务器应用程序就可以处理用户发起的请求了。
  下图中,假设用户请求拆分成两个IP数据包
  第一个IP数据包可能经过A,B,C,G,如下图。
  第二个数据包可能经过A,B,E,G(在B点选择了E节点,导致路径不同),如下图。
  导致数据包在B节点走向不同路径的原因可能有很多种,例如C节点暂时不如E节点通畅或者临时发生了网络拥塞,这与在高速道路驾驶的原理差不多。
  由于网络环境多变,还可能第二个数据包先到达服务器,这时TCP会负责处理out of order的情况;如果网络传递过程中,某一个路由器由于过于繁忙,把第一个数据包丢了,那么客户端的TCP会负责重传第一个数据包,确保服务器端的TCP能够不会因为丢包而收不到第一个数据包。
  如果用户请求内容很大,如上传一个大文件,就会被拆分成大量数据分段,而TCP传输这些数据分段的时候,往往还会考虑整个互联网能够接收的程度和对方能够接收的程度,发送数据过于贪婪不仅会连累整个互联网,对方也未必能够接收得了,而且还可能使自己速度更慢,这有点像道路驾驶一样,不能过于自私,遵守一定的交通规则才能使道路通畅。在互联网传输数据方面,这些交通规则算法就是赫赫有名的网络拥塞控制算法,而对方能否接收得了,则通过发送窗口的方式进行控制。总体来说,一次发送数据的大小是根据对方的接收窗口大小和拥塞控制算法来综合决定的。
  从上面可以看出,IP负责在互联网传输数据,而TCP负责数据传输可靠并且尽量使网络健康运行,两者合作完成了请求的传递,这也是互联网应用工作的普遍方式。
  需要注意的是,TCP负责跟TCP进行交互,应用层无需去实现TCP的功能,只需要委托给TCP来完成数据传输,这种隔离的方式给应用层的开发/运维/测试带来了方便,另外,当出现TCP相关问题时,解决问题的难度也大大增加。
  8、TCP经验知识
  在多年实战过程中,我们发现以下TCP经验对工作很有帮助。总结如下:
  1. 距离越远,延迟越大,重传概率越大
  2. 网络状况好坏,直接影响应用程序性能
  3. 不同环境,采用不同的拥塞算法
  4. 拥塞控制算法是互联网的精华,是互联网大获成功的关键因素之一
  5. TCP是有状态协议,采用异步处理
  6. 抓包分析是找到TCP相关问题根本原因的利器
  7. TCP客户端和TCP服务器端之间的交互,是应用层所有应用公共的交互部分,理解了这部分原理,可以解决大量TCP相关问题。
  9、IP经验知识
  在IP经验知识方面,我们大致总结如下:
  1. 数据包选择路径不是固定的,到达的顺序也可能是乱序的
  2. 安全过滤,坑多的地方
  3. 无状态协议,简化互联网架构,是互联网大获成功的关键因素之一
  4. IP层对TCP传递过来的数据包很少分片处理
  5. 中途设备不仅仅具备路由功能,而且还会干涉TCP会话(灵异问题的温床)
  10、结束语
  TCP/IP网络是互联网的基石,了解TCP/IP是如何工作的,对于我们解决问题是非常有帮助的。

罢免董事长未果,爱迪尔内斗升级,A股双头董事会如何破局?作为上市公司最高权力机构,双头董事会的出现究竟是好事还是坏事?作者蒋皓高远山编辑丨蔡真来源野马财经继新潮能源之后,又有上市公司董事长被股东申请罢免。最近,珠宝公司爱迪尔(00274在UDE2021感受颜值经济崛起,这些潮美好物妥妥提升你的品位随着Z世代成为家电消费主力军,拥有强设计感的高颜值家电成为越来越多消费者的首选,彰显着追求精致生活的态度与美学主张。在与ChinaJoy同期开展的UDE2021国际消费电子博览会上冠军龙服在身东京奥运会金牌在手最近,中国奥运健儿花式冲上热搜,网友们的情绪都被东京奥运会赛事紧紧牵动着,云观赛热情空前高涨。夺得东京奥运会首金的神枪手杨倩,收获金牌后做出大大的比心动作,让严肃的赛场变得活力满满阿富汗女性的绝望罩袍着装令歧视离异女性与绝境下的抵抗随着阿富汗各省和城市被塔利班控制,女性的声音已经遭到了压制。在女性报道阿富汗这个特别系列中,卫报的权利与自由项目(Rightsandfreedomproject)与团结了阿富汗各地快时代的洗衣干衣帮手,三星智爱呵护带你领略快之美我们生活在一个快节奏的时代,人们越来越追求效率,计较时间成本,一寸光阴一寸金这句话,在如今淋漓尽致地展现了。有的人认为快容易制造焦虑,也破坏了慢节奏的浪漫,但不可否认的是,在平时的联想发布晨星机器人助推制造业数字化转型今年以来,我国工业经济运行延续稳定恢复态势。上半年,工业机器人等产业快速发展,这背后是制造业企业数字化转型步伐的加快。数字化要真正走进企业,工业机器人等产业一定会是先行者,这些产业云游戏进入大屏时代,游戏电视成玩家新宠据腾讯研究院与Newzoo联合出品的中国云游戏市场趋势报告(2021)显示,得益于5G等科技实现了更稳定低延迟高带宽网络连接,云游戏市场开始进入爆发式增长阶段,预计在2020到20如何对付社交网络上的傻子由于现在上网的门槛实在太低,导致社交网络上的傻子越来越多,据2020年第46次中国互联网络发展状况统计报告显示,受过大学本科以上教育的网民群体仅为8。8,初中以下文化程度的网民占比智慧屏后起之秀,华为V75Super与索尼77A80J间的较量电视作为家庭消遣娱乐的工具,在我们的日常生活中扮演着非常重要的角色,然而在挑选电视产品时很多人都会犯难,市场上的商品太多导致人们选择困难症都要犯了。不久前华为推出了智慧屏V75Su漫威电影宇宙个人影评和观影顺序漫威电影宇宙(MarvelCinematicUniverse,缩写为MCU),是由漫威影业基于漫威漫画角色制作的一系列电影组成的架空世界和共同世界。漫威电影宇宙起源于2008年的钢星球大战系列电影影评星球大战是一个历史悠久的系列科幻电影,该片描写,在很久以前,一个遥远的银河系,肩负正义使命的绝地武士与帝国邪恶黑暗势力作战的故事。正传三部曲依次于1977年至1983年上映,前传三
扫地机器人好不好用?小洁智能扫地机器人告诉你答案有人说扫地机器人不好用,有人说扫地机器人很好用,都不知道谁是谁非。其实,我们只要合理使用好扫地机器人,还有就是懂得一些扫地机器人的选购技巧,选到一款好用的扫地机器人,轻松就能搞定家智商超高的小洁智能扫地机,你值得拥有养宠物的人越来越多,我也加入了这一支大军,真的是超级可爱(),我养了只喵主子。天天撒娇,自己埋猫砂,吃猫粮。然后我的快乐增加了,我的烦恼也来了。地面清洁的问题,每天好多毛毛,天天打什么扫地机好用,什么扫地机更加智能,看完你就知道了我是个挺分裂的人,又忙又懒,但又见不得家里脏,所以对我这种又懒又想干净的人来说,扫地机器人非常有必要买。我也入手过很多扫地机,刚开始的扫地机器人被称为人工傻瓜产品一点也不为过,毕竟精彩回顾ampampquot旗思妙谈ampampquot生物梅里埃人力资源高级副总裁张群丽女士本期访谈,主办方重磅邀请全球领先的微生物诊断企业生物梅里埃全球临床业务人力资源高级副总裁张群丽女士亲临直播间,直播期间累计观看量高达25,338次。这一节目是中国播放量领先的人力资精彩回顾乐荐健康科技集团创始人兼董事长黄飞燕女士本期访谈,主办方重磅邀请中国领先的企业健康数字化服务平台乐荐健康科技集团创始人兼董事长爱康集团联合创始人兼董事黄飞燕女士亲临直播间,直播期间累计观看量高达22,297次。01hr提HRflag2021极思论坛10月震撼来袭!全新论战环节精彩抢先看1990年前,人们传递一个信息的主要手段是写信,通常历时12周才能被远方的人收到,而现在已经可以零成本实时图文语音沟通。通信技术和互联网的发展带来的直接结果是信息传递所需要的成本时2021极帜奖(FlagAwards)颁奖典礼精彩回顾人力资源经理人团队项目年度旗帜性奖项2021极帜奖(FlagAwards)颁奖典礼于9月16日在上海香格里拉酒店隆重举行!本年度荣膺奖项的高管团队来自48家全球及国内领先企业!20生活应该与时俱进,智能扫地机器人最新选购技巧生活应该与时俱进,智能扫地机器人的出现,给我们的生活带来了很大的变化,解放双手不再是说说而已。智能扫地机器人哪个牌子好?购买任何东西,我们需要根据自己的家庭环境去选择一款适合自己的奇瑞大蚂蚁每一款优秀的汽车背后是设计师们的奋力托举奇瑞大蚂蚁,一款非常优秀的SUV新能源汽车产品,这款汽车自上市以来,就受到了很多消费者的认可与支持,销量也是非常不错的。可见,奇瑞大蚂蚁这款新能源汽车产品是一款非常优秀的汽车,接下改造项目仓库改成度假村居然可以这么好看,设计师能创造奇迹今天小谍为大家带来的是一个改造项目,项目位于距离上海5小时车程的山里,六座旧粮仓的老建筑,被改造成了一个时髦的现代谷仓度假村。老房改造项目将新旧融合在乡村的和谐中。该项目位置距离上别墅设计设计师疯了,1楼到3楼用了一整块玻璃,设计太大胆了今天小谍为大家带来的是一套靠建筑外墙出圈的设计案例,整栋建筑占地1200平方米,整个建筑总共分为四层,最值得一提的是一楼到顶楼用了一整块玻璃,是不是设计师疯了?整体造型非常特别,采