城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

计算机网络经典20问

10月2日 阴阳狱投稿
  本文目录:网络分层结构三次握手两次握手可以吗?四次挥手第四次挥手为什么要等待2MSL?为什么是四次挥手?TCP有哪些特点?TCP和UDP的区别?HTTP协议的特点?HTTP报文格式HTTP状态码有哪些?HTTP1。0和HTTP1。1的区别?HTTP1。1和HTTP2。0的区别?HTTPS与HTTP的区别?什么是数字证书?HTTPS原理DNS的解析过程?浏览器中输入URL返回页面过程?Cookie和Session的区别?什么是对称加密和非对称加密?网络分层结构
  计算机网络体系大致分为三种,OSI七层模型、TCPIP四层模型和五层模型。一般面试的时候考察比较多的是五层模型。
  TCPIP五层模型:应用层、传输层、网络层、数据链路层、物理层。应用层:为应用程序提供交互服务。在互联网中的应用层协议很多,如域名系统DNS、HTTP协议、SMTP协议等。传输层:负责向两台主机进程之间的通信提供数据传输服务。传输层的协议主要有传输控制协议TCP和用户数据协议UDP。网络层:选择合适的路由和交换结点,确保数据及时传送。主要包括IP协议。数据链路层:在两个相邻节点之间传送数据时,数据链路层将网络层交下来的IP数据报组装成帧,在两个相邻节点间的链路上传送帧。物理层:实现相邻节点间比特流的透明传输,尽可能屏蔽传输介质和物理设备的差异。三次握手
  假设发送端为客户端,接收端为服务端。开始时客户端和服务端的状态都是CLOSED。
  第一次握手:客户端向服务端发起建立连接请求,客户端会随机生成一个起始序列号x,客户端向服务端发送的字段中包含标志位SYN1,序列号seqx。第一次握手前客户端的状态为CLOSE,第一次握手后客户端的状态为SYNSENT。此时服务端的状态为LISTEN。第二次握手:服务端在收到客户端发来的报文后,会随机生成一个服务端的起始序列号y,然后给客户端回复一段报文,其中包括标志位SYN1,ACK1,序列号seqy,确认号ackx1。第二次握手前服务端的状态为LISTEN,第二次握手后服务端的状态为SYNRCVD,此时客户端的状态为SYNSENT。(其中SYN1表示要和客户端建立一个连接,ACK1表示确认序号有效)第三次握手:客户端收到服务端发来的报文后,会再向服务端发送报文,其中包含标志位ACK1,序列号seqx1,确认号acky1。第三次握手前客户端的状态为SYNSENT,第三次握手后客户端和服务端的状态都为ESTABLISHED。此时连接建立完成。两次握手可以吗?
  第三次握手主要为了防止已失效的连接请求报文段突然又传输到了服务端,导致产生问题。比如客户端A发出连接请求,可能因为网络阻塞原因,A没有收到确认报文,于是A再重传一次连接请求。连接成功,等待数据传输完毕后,就释放了连接。然后A发出的第一个连接请求等到连接释放以后的某个时间才到达服务端B,此时B误认为A又发出一次新的连接请求,于是就向A发出确认报文段。如果不采用三次握手,只要B发出确认,就建立新的连接了,此时A不会响应B的确认且不发送数据,则B一直等待A发送数据,浪费资源。四次挥手
  A的应用进程先向其TCP发出连接释放报文段(FIN1,sequ),并停止再发送数据,主动关闭TCP连接,进入FINWAIT1(终止等待1)状态,等待B的确认。B收到连接释放报文段后即发出确认报文段(ACK1,acku1,seqv),B进入CLOSEWAIT(关闭等待)状态,此时的TCP处于半关闭状态,A到B的连接释放。A收到B的确认后,进入FINWAIT2(终止等待2)状态,等待B发出的连接释放报文段。B发送完数据,就会发出连接释放报文段(FIN1,ACK1,seqw,acku1),B进入LASTACK(最后确认)状态,等待A的确认。A收到B的连接释放报文段后,对此发出确认报文段(ACK1,sequ1,ackw1),A进入TIMEWAIT(时间等待)状态。此时TCP未释放掉,需要经过时间等待计时器设置的时间2MSL(最大报文段生存时间)后,A才进入CLOSED状态。B收到A发出的确认报文段后关闭连接,若没收到A发出的确认报文段,B就会重传连接释放报文段。第四次挥手为什么要等待2MSL?保证A发送的最后一个ACK报文段能够到达B。这个ACK报文段有可能丢失,B收不到这个确认报文,就会超时重传连接释放报文段,然后A可以在2MSL时间内收到这个重传的连接释放报文段,接着A重传一次确认,重新启动2MSL计时器,最后A和B都进入到CLOSED状态,若A在TIMEWAIT状态不等待一段时间,而是发送完ACK报文段后立即释放连接,则无法收到B重传的连接释放报文段,所以不会再发送一次确认报文段,B就无法正常进入到CLOSED状态。防止已失效的连接请求报文段出现在本连接中。A在发送完最后一个ACK报文段后,再经过2MSL,就可以使这个连接所产生的所有报文段都从网络中消失,使下一个新的连接中不会出现旧的连接请求报文段。为什么是四次挥手?
  因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYNACK报文。但是在关闭连接时,当Server端收到Client端发出的连接释放报文时,很可能并不会立即关闭SOCKET,所以Server端先回复一个ACK报文,告诉Client端我收到你的连接释放报文了。只有等到Server端所有的报文都发送完了,这时Server端才能发送连接释放报文,之后两边才会真正的断开连接。故需要四次挥手。TCP有哪些特点?TCP是面向连接的运输层协议。点对点,每一条TCP连接只能有两个端点。TCP提供可靠交付的服务。TCP提供全双工通信。面向字节流。TCP和UDP的区别?TCP面向连接;UDP是无连接的,即发送数据之前不需要建立连接。TCP提供可靠的服务;UDP不保证可靠交付。TCP面向字节流,把数据看成一连串无结构的字节流;UDP是面向报文的。TCP有拥塞控制;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如实时视频会议等)。每一条TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的通信方式。TCP首部开销20字节;UDP的首部开销小,只有8个字节。HTTP协议的特点?HTTP允许传输任意类型的数据。传输的类型由ContentType加以标记。无状态。对于客户端每次发送的请求,服务器都认为是一个新的请求,上一次会话和下一次会话之间没有联系。支持客户端服务器模式。HTTP报文格式
  HTTP请求由请求行、请求头部、空行和请求体四个部分组成。请求行:包括请求方法,访问的资源URL,使用的HTTP版本。GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。请求头:格式为属性名:属性值,服务端根据请求头获取客户端的信息,主要有cookie、host、connection、acceptlanguage、acceptencoding、useragent。请求体:用户的请求数据如用户名,密码等。
  请求报文示例:POSTxxxHTTP1。1请求行Accept:imagegif。imagejpeg,请求头部AcceptLanguage:zhcnConnection:KeepAliveHost:localhostUserAgent:Mozila4。0(MSIE5。01;WindowNT5。0)AcceptEncoding:gzip,deflateusernamedabin请求体
  HTTP响应也由四个部分组成,分别是:状态行、响应头、空行和响应体。状态行:协议版本,状态码及状态描述。响应头:响应头字段主要有connection、contenttype、contentencoding、contentlength、setcookie、LastModified,、CacheControl、Expires。响应体:服务器返回给客户端的内容。
  响应报文示例:HTTP1。1200OKServer:ApacheTomcat5。0。12Date:Mon,6Oct200313:23:42GMTContentLength:112htmlbody响应体bodyhtmlHTTP状态码有哪些?
  HTTP1。0和HTTP1。1的区别?长连接:HTTP1。0默认使用短连接,每次请求都需要建立新的TCP连接,连接不能复用。HTTP1。1支持长连接,复用TCP连接,允许客户端通过同一连接发送多个请求。不过,这个优化策略也存在问题,当一个队头的请求不能收到响应的资源时,它将会阻塞后面的请求。这就是队头阻塞问题。断点续传:HTTP1。0不支持断点续传。HTTP1。1新增了range字段,用来指定数据字节位置,支持断点续传。错误状态响应码:在HTTP1。1中新增了24个错误状态响应码,如409(Conflict)表示请求的资源与资源的当前状态发生冲突、410(Gone)表示服务器上的某个资源被永久性的删除。Host头处理:在HTTP1。0中认为每台服务器都绑定一个唯一的IP地址,因此,请求消息中的URL并没有传递主机名。到了HTTP1。1时代,虚拟主机技术发展迅速,在一台物理服务器上可以存在多个虚拟主机,并且它们共享一个IP地址,故HTTP1。1增加了HOST信息。HTTP1。1和HTTP2。0的区别?
  HTTP2。0相比HTTP1。1支持的特性:新的二进制格式:HTTP1。1基于文本格式传输数据;HTTP2。0采用二进制格式传输数据,解析更高效。多路复用:在一个连接里,允许同时发送多个请求或响应,并且这些请求或响应能够并行的传输而不被阻塞,避免HTTP1。1出现的队头堵塞问题。头部压缩,HTTP1。1的header带有大量信息,而且每次都要重复发送;HTTP2。0把header从数据中分离,并封装成头帧和数据帧,使用特定算法压缩头帧,有效减少头信息大小。并且HTTP2。0在客户端和服务器端记录了之前发送的键值对,对于相同的数据,不会重复发送。比如请求a发送了所有的头信息字段,请求b则只需要发送差异数据,这样可以减少冗余数据,降低开销。服务端推送:HTTP2。0允许服务器向客户端推送资源,无需客户端发送请求到服务器获取。HTTPS与HTTP的区别?HTTP是超文本传输协议,信息是明文传输;HTTPS则是具有安全性的ssl加密传输协议。HTTP和HTTPS用的端口不一样,HTTP端口是80,HTTPS是443。HTTPS协议需要到CA机构申请证书,一般需要一定的费用。HTTP运行在TCP协议之上;HTTPS运行在SSL协议之上,SSL运行在TCP协议之上。什么是数字证书?
  服务端可以向证书颁发机构CA申请证书,以避免中间人攻击(防止证书被篡改)。证书包含三部分内容:证书内容、证书签名算法和签名,签名是为了验证身份。
  服务端把证书传输给浏览器,浏览器从证书里取公钥。证书可以证明该公钥对应本网站。
  数字签名的制作过程:CA使用证书签名算法对证书内容进行hash运算。对hash后的值用CA的私钥加密,得到数字签名。
  浏览器验证过程:获取证书,得到证书内容、证书签名算法和数字签名。用CA机构的公钥对数字签名解密(由于是浏览器信任的机构,所以浏览器会保存它的公钥)。用证书里的签名算法对证书内容进行hash运算。比较解密后的数字签名和对证书内容做hash运算后得到的哈希值,相等则表明证书可信。HTTPS原理
  首先是TCP三次握手,然后客户端发起一个HTTPS连接建立请求,客户端先发一个ClientHello的包,然后服务端响应ServerHello,接着再给客户端发送它的证书,然后双方经过密钥交换,最后使用交换的密钥加解密数据。协商加密算法。在ClientHello里面客户端会告知服务端自己当前的一些信息,包括客户端要使用的TLS版本,支持的加密算法,要访问的域名,给服务端生成的一个随机数(Nonce)等。需要提前告知服务器想要访问的域名以便服务器发送相应的域名的证书过来。服务端响应ServerHello,告诉客户端服务端选中的加密算法。接着服务端给客户端发来了2个证书。第二个证书是第一个证书的签发机构(CA)的证书。客户端使用证书的认证机构CA公开发布的RSA公钥对该证书进行验证,下图表明证书认证成功。验证通过之后,浏览器和服务器通过密钥交换算法产生共享的对称密钥。开始传输数据,使用同一个对称密钥来加解密。DNS的解析过程?浏览器搜索自己的DNS缓存若没有,则搜索操作系统中的DNS缓存和hosts文件若没有,则操作系统将域名发送至本地域名服务器,本地域名服务器查询自己的DNS缓存,查找成功则返回结果,否则依次向根域名服务器、顶级域名服务器、权限域名服务器发起查询请求,最终返回IP地址给本地域名服务器本地域名服务器将得到的IP地址返回给操作系统,同时自己也将IP地址缓存起来操作系统将IP地址返回给浏览器,同时自己也将IP地址缓存起来浏览器得到域名对应的IP地址浏览器中输入URL返回页面过程?解析域名,找到主机IP。浏览器利用IP直接与网站主机通信,三次握手,建立TCP连接。浏览器会以一个随机端口向服务端的web程序80端口发起TCP的连接。建立TCP连接后,浏览器向主机发起一个HTTP请求。服务器响应请求,返回响应数据。浏览器解析响应内容,进行渲染,呈现给用户。
  Cookie和Session的区别?作用范围不同,Cookie保存在客户端,Session保存在服务器端。有效期不同,Cookie可设置为长时间保持,比如我们经常使用的默认登录功能,Session一般失效时间较短,客户端关闭或者Session超时都会失效。隐私策略不同,Cookie存储在客户端,容易被窃取;Session存储在服务端,安全性相对Cookie要好一些。存储大小不同,单个Cookie保存的数据不能超过4K;对于Session来说存储没有上限,但出于对服务器的性能考虑,Session内不要存放过多的数据,并且需要设置Session删除机制。什么是对称加密和非对称加密?
  对称加密:通信双方使用相同的密钥进行加密。特点是加密速度快,但是缺点是密钥泄露会导致密文数据被破解。常见的对称加密有AES和DES算法。
  非对称加密:它需要生成两个密钥,公钥和私钥。公钥是公开的,任何人都可以获得,而私钥是私人保管的。公钥负责加密,私钥负责解密;或者私钥负责加密,公钥负责解密。这种加密算法安全性更高,但是计算量相比对称加密大很多,加密和解密都很慢。常见的非对称算法有RSA和DSA。
  码字不易,如果觉得对你有帮助,可以点个赞鼓励一下!
  我是程序员大彬,专注Java后端硬核知识分享,欢迎大家关注
投诉 评论 转载

结束了!1年4。5亿!勇士夺冠仍亏损,7年4冠阵容要瓦解了勇士老板拉科布在接受采访时,透露202122赛季是他接手勇士以来第一个财政亏损的赛季。2122赛季勇士总决赛42击败凯尔特人夺冠,勇士都夺冠了,还是亏损,为何?答案很简单……从夫妻同名探究起名重名原因唐诗云:问姓惊初见,称名忆旧容;别来沧海事,语罢暮天钟。(唐代李益)。这首诗恰当阐发了姓名的个性和感情色彩。姓名,作为称谓符号,在人们记忆里,只要称名,就能够忆起旧容。然而中国……长寿的人,或许会有这几种表现,不妨看看你有吗?导语:当一个人的年龄进入中年过后,由于身体素质下降,体内各部分器官退化的原因,人们才发现养生的重要性,只有身体健康以后才能更好的享受生活,如果一味地忙着赚钱,那么赚来的钱才可能……流浪汉麦基加盟太阳的重生?贾维尔麦基,刚进联盟时,体测数据完全是一个标准大中锋的逆天数据,来看看他的新秀数据:选秀顺位:2008年第1轮第18顺位(20岁)赤脚身高:211厘米,臂展:229……孝顺的邓超姐姐拿嫁妆供他上学,红了不忘本,给大姐买了2套房文17编辑嘈坊他是娱乐圈出了名的好儿子、好丈夫、好演员。他从皇帝专业户到全能影帝,从荧幕中的铁血硬汉,走向综艺的颜艺担当。周星驰称赞他为创作型演员,前途……计算机网络经典20问本文目录:网络分层结构三次握手两次握手可以吗?四次挥手第四次挥手为什么要等待2MSL?为什么是四次挥手?TCP有哪些特点?TCP和UDP的区别?HTTP协议的特点?HTTP报文……一盆铜钱草在小院的奇妙旅程1hr某年某月的某一天,一位大叔突发兴致,挖了几株栽到一个小玻璃瓶里,并把它放在小院的窗台上。日子过得很舒适,有阳光,有雨露;有沃土,有肥料;有赞美,有照料。铜钱草迅速成……迪奥于上海张园揭幕2023春季男装ERL限定系列限时精品店1月6日,迪奥于上海张园揭幕二零二三春季男装ERL限定系列限时精品店。迪奥男装艺术总监金琼斯(KIMJONES)特邀ERL品牌创意总监伊利罗素林兹(ELIRUSSELLL……杨学增也在塑造自己的新杀招,这不,山西三雄来了,前六哪里走头条创作挑战赛山西三雄横空出世,这次杨学增心里有底了,因为他们前五有望!杨学增也在塑造自己得新杀招,没办法!即将到来的第三阶段对于山西队来说也是一个不小的考验。根源就是第……新品扎堆,买量见底,三七互娱2023开盲盒游戏产业2023的第一场雪,比以往时候来得更晚一些。年前游戏大厂版号颗粒无收,网易大肆复活停运端游接收暴雪难民,紧接着就曝出国内两家头部游戏厂商米哈游与三七互娱,对簿公堂……2023年宾阳县民间舞炮龙活动指南宾阳炮龙节是壮、汉文化融合共生的民俗节庆活动,于每年农历正月十一举办,至今已有1000年历史。2008年,宾阳炮龙节成功入选第二批国家级非物质文化遗产名录,并被评为中国最佳非物……突然失联,退休两年的他不保险了?一生转战保险界的万峰,却可能落下不保险的下场?作者:隋坤近日,前新华保险总裁万峰失联的消息引发大量关注。去年11月初还与记者谈笑风生的万峰,却在当月底忽……
lol联盟时报LPL转会期大结局战队阵容来了!(2021122022年的春晚,赵本山要回来了?这本书将改变你的创业思维世界上最贵的白兰地路易十三酒多少钱最贵一瓶万又是造句用又是造句大全传奇手游中最需要技术的原来是道士你是传奇游戏中的技术流道士么有望登陆NBA?中国小将余嘉豪对比同期姚明,差距多大?分钟学会这招从此各大网站视频免费看山羊种瓜谁是凶手演技评分赵丽颖高露10分并列第一,男主倒数第一骁龙88812GB256GB,现已跌至2499元,65W快充医护人员造句用医护人员造句大全

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁