《计算机网络》学习总结——面试常见知识点(一)

一、IOS/OSI七层模型和TCP/IP五层模型简述

OSI七层模型包括:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
图片说明
TCP/IP五层模型包括:物理层、数据链路层、网络层、传输层、应用层。
图片说明

二、http和https区别

Http协议运行在TCP之上,明文传输,客户端与服务器端都无法验证对方的身份;Https是身披SSL(Secure Socket Layer)外壳的Http,运行于SSL上,SSL运行于TCP之上,是添加了加密和认证机制的HTTP。主要是:

  1. 端口不同:http:80;https:443;
  2. 资源消耗:https由于加减密处理消耗更多的CPU和内存资源
  3. 开销:https通信需要证书,一般要购买的

https加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。

三、HTTP 协议包括的请求及区别

1.GET:请求读取由URL所标志的信息。
2.POST:给服务器添加信息(如注释)。
3.PUT:在给定的URL下存储一个文档。
4.DELETE:删除给定的URL所标志的资源。
HTTP 中,POST 与 GET 的区别?(可看Tiny Http开源项目)
1.Get是从服务器上获取数据,Post是向服务器传送数据。
2.Get是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,在URL中可以看到。
3.Get传送的数据量小,不能大于2KB;Post传送的数据量较大,一般被默认为不受限制。
4.根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。

http常见状态码
200:服务器成功处理请求
304:上次请求后,请求网页未修改过
403:服务器拒绝请求
404:服务器找不到要请求的网页
500:服务器遇到错误,无法完成请求

四、TCP和UDP(TCP如何保证可靠)

  • TCP:面向连接、可靠的、只支持点对点通信、具有拥塞机制、首部开销20字节、面向字节流,分段传输、慢
  • UDP:一个数据报就完成数据通信;无连接、不可靠、无拥塞、首部8字节、支持一对一、一对多、多对一、多对多通信、快

TCP可靠传输实现方式:以字节位单位的滑动窗口技术、超时重传三次机制、确认ack机制

避免网络拥塞方式: 动态改变窗口
慢开始:从1开始以2倍增长,到达慢门限以+1增长,出现拥塞,开始丢包至0,重设慢开始门限为0.5倍上限值。
快恢复:大致与慢开始相似,但丢包只丢至新的门限值再执行拥塞避免算法+1法;

五、cookie和session

  1. 实现机制:Session的实现常常依赖于Cookie机制,通过Cookie机制回传SessionID;
  2. 大小限制:Cookie有大小限制并且浏览器对每个站点也有cookie的个数限制,Session没有大小限制,理论上只与服务器的内存大小有关;
  3. 安全性:Cookie存在安全隐患,通过拦截或本地文件找得到cookie后可以进行攻击,而Session由于保存在服务器端,相对更加安全;
  4. 服务器资源消耗:Session是保存在服务器端上会存在一段时间才会消失,如果session过多会增加服务器的压力。

六、三次握手和四次挥手(建议直接看博客中图解)

三次握手
第一次A—>B:客户A主动发送 连接请求的报文段 至服务器B。SYN=1,代表请求建立会话;seq=x,同时序号=x代表数据段的第一个字节是整个文件的第x个字节。A进入SYN_SENT状态。
第二次B—>A:服务器B接收到 连接请求 后发出回应。同意则发送 同意连接请求 至A。同步位SYN=1,代表同意建立会话;ACK=1,表明确认字节段生效;seq=y,同时序号=y代表发送的数据段的第一个字节是整个文件的第y个字节;ack=x+1,代表确认收到上一数据段。A的TCP通知上层应用进程,连接已建立。B进入SYN_RECV状态。
第一次A—>B:客户A收到B回复后。发送 回复报文段 至服务器B。SYN=0,会话已建立,归0;ACK=1,表明确认字节段生效;seq=x+1,代表发出 的数据段的第一个字节是x+1,即B发送的确认号。ack=y+1,代表确认收到B数据段。B的TCP通知上层应用进程,连接已建立。
A发送后进入ESTAB-LISHED状态。B接收后进入ESTAB-LISHED状态。

四次挥手
第一次A—>B:传输结束后,客户机A的应用进程表示要释放连接,TCP发出 释放连接报文段 至服务器B,并主动关闭TCP连接。FIN=1,代表释放连接;序号seq=u,发送一个数据等待B的确认。A处于 等待释放1——FIN-WAIT1状态。
第二次B—>A: 服务器B收到 释放连接报文段后,向A发送 确认收到 报文段。ACK=1,代表确认号生效;seq=v,代表发送数据的序号;ack=u+1,代表确认已收到释放连接的报文段。服务器B的TCP通知上层应用进程即将关闭连接。A到B连接释放。但B依然可连接A;若B还有数据发送,A仍要接收。B处于等待关闭——CLOSE-WAIT状态,A接收到此报文段后处于 等待释放2——FIN-WAIT2状态.
第三次B—>A: 服务器B向A的数据传送完成,B则向A发送 释放连接 报文段。FIN=1,代表释放连接;ACK=1,代表确认号生效;seq=w,发送一个数据等待A的确认;ack=u+1,表明确认已收到A释放连接的报文段。B处于最后确认——LAST-ACK状态;
第四次A—>B:客户端A收到B的报文段,发送确认报文段 至B;ACK=1,代表确认号生效;seq=u+1,代表发送数据序号;ack=w+1,代表确认收到了B的释放连接报文段。TCP 连接必须经过时间2MSL 后才真正释放掉,此时A处于计时等待——TIME-WAIT状态;当B收到时,关闭连接。计时结束后A关闭连接。

全部评论

相关推荐

不愿透露姓名的神秘牛友
05-29 22:21
Offer1:小马智行,深圳,测试开发工程师,17.0k*16.0,Offer2:追觅科技,深圳,嵌入式工程师,18.0k*15.0,
嵌软狗都不学:各位base深圳的同事,作为也是并肩作战的一员,今天想站在管理视角,和大家开诚布公地聊一聊:从近几个月的上下班数据对比看来,我们发现一个明显的差异:深圳同事的在岗时间普遍比苏州同事短。很多深圳同事早上9点之后才到公司,晚上不到 20 点就下班了;而总部那边,20点半甚至 22 点后还有不少同事在办公室忙碌,特别是研发团队,加班更是常态。相信去过苏州的同事,对这种场景都不陌生。我很好奇,这是因为苏州工作任务太重还是咱们深圳同事效率真的高到能在更短时间内完成工作?MOVA在深圳成立分公司是为了吸引更优秀的人才贡献更多更高质的价值,公司管理层给我反馈的是深圳招到的多是行业的专家大拿,大部分都是薪资比苏州高的,而且我们办公的租金等也远高于苏州的..MOVA虽脱胎于强壮的集团母体不久,各业务板块尚未实现全面盈利,虽说公司管理层目光长远,不纠结当下的人才投入,但行业内的普遍标准是,员工创造的价值要达到公司雇佣成本的 15 倍以上。大家不妨自我审视一下,自己是否达到了这个标准?如果是抱着划水、按时打卡走人拿毛爷爷的心态那不适合来MOVA,那样过下去不但自己过得尴尬也会影响MOVA这个大船的攻城略地的速度.我并非鼓励大家盲目加班,而是倡导高效工作,拒绝无效忙碌,不要让项目进度因低效受影响,也别把精力浪费在和苏州同事拼打卡时长上,提倡更高的人效比;考虑到两地地域和交通差异,相信大家会找最适合自己发挥的工作方式(比如按时下班后1小时到家晚饭后继续未竟工作等..)大家在遵守公司规章的情况下尽情地体现自己的能力价值,为MOV!和深圳公司争光我们在这边才能更安心更有信心的工作下去;请客BU长、名部门长、项目管理和各业务单元负责人,全面梳理团队情况,及时评估成员工作负荷与成果质量,坚决清退划水害虫痕疫,践行公司价值观,相互监督,防止管理漏洞及渎职。感谢人家的理解,也请人家多担待我的直言不讳……
点赞 评论 收藏
分享
用户64975461947315:这不很正常吗,2个月开实习证明,这个薪资也还算合理,深圳Java好多150不包吃不包住呢,而且也提前和你说了没有转正机会,现在贼多牛马公司骗你说毕业转正,你辛辛苦苦干了半年拿到毕业证,后面和你说没hc了😂
点赞 评论 收藏
分享
牛客383479252号:9,2学生暑期实习失利开始投小厂,给这群人整自信了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务