计算机网络基础知识

一、计算机网络 
基础部分 

  1. 1. TCP报头格式 

TCP协议头最少20个字节,包括以下的区域: 
TCP源端口(Source Port):16位的源端口其中包含初始化通信的端口。源端口和源IP地址的作用是标示报问的返回地址。 
TCP目的端口(Destination port):16位的目的端口域定义传输的目的。这个端口指明报文接收计算机上的应用程序地址接口。 
TCP序列号(序列码,Sequence Number):32位 
TCP应答号(Acknowledgment Number):32位的序列号由接收端计算机使用,重组分段的报文成最初形式。,如果设置了ACK控制位,这个值表示一个准备接收的包的序列码。 
数据偏移量(HLEN):4位包括TCP头大小,指示何处数据开始。 
保留(Reserved):6位值域,这些位必须是0。为了将来定义新的用途所保留。 
标志(Code Bits):6位标志域。表示为:紧急标志、有意义的应答标志、推、重置连接标志、同步序列号标志、完成发送数据标志。按照顺序排列是:URG、ACK、PSH、RST、SYN、FIN。 
1. URG:紧急标志 
紧急(The urgent pointer) 标志有效。紧急标志置位, 
2. ACK:确认标志 
确认编号(Acknowledgement Number)栏有效。大多数情况下该标志位是置位的。TCP报头内的确认编号栏内包含的确认编号(w+1,Figure:1)为下一个预期的序列编号,同时提示远端系统已经成功接收所有数据。 
3. PSH:推标志 
该标志置位时,接收端不将该数据进行队列处理,而是尽可能快将数据转由应用处理。在处理 telnet 或 rlogin 等交互模式的连接时,该标志总是置位的。 
4. RST:复位标志 
复位标志有效。用于复位相应的TCP连接。 
5. SYN:同步标志 
同步序列编号(Synchronize Sequence Numbers)栏有效。该标志仅在三次握手建立TCP连接时有效。它提示TCP连接的服务端检查序列编号,该序列编号为TCP连接初始端(一般是客户端)的初始序列编号。在这里,可以把TCP序列编号看作是一个范围从0到4,294,967,295的32位计数器。通过TCP连接交换的数据中每一个字节都经过序列编号。在TCP报头中的序列编号栏包括了TCP分段中第一个字节的序列编号。 
6. FIN:结束标志 
带有该标志置位的数据包用来结束一个TCP回话,但对应端口仍处于开放状态,准备接收后续数据。 
窗口(Window):16位,用来表示想收到的每个TCP数据段的大小。 
校验位(Checksum):16位TCP头。源机器基于数据内容计算一个数值,收信息机要与源机器数值 结果完全一样,从而证明数据的有效性。 
优先指针(紧急,Urgent Pointer):16位,指向后面是优先数据的字节,在URG标志设置了时才有效。如果URG标志没有被设置,紧急域作为填充。加快处理标示为紧急的数据段。 
选项(Option):长度不定,但长度必须以字节。如果 没有 选项就表示这个一字节的域等于0。  
数据(Date):应用程序的数据。 
TCP报文格式 
更多详细解释参考:TCP报文详解 
2. UDP报头格式 
UDP数据报格式有首部和数据两个部分。首部很简单,共8字节。包括: 
◆源端口(Source Port):2字节,源端口号。 
◆目的端口(Destination Port ):2字节,目的端口号。 
◆长度(Length):2字节,UDP用户数据报的总长度,以字节为单位。 
◆检验和(Checksum):2字节,用于校验UDP数据报的数字段和包含UDP数据报首部的“伪首部”。其校验方法同IP分组首部中的首部校验和。 
伪首部,又称为伪包头(Pseudo Header):是指在TCP的分段或UDP的数据报格式中,在数据报首部前面增加源IP地址、目的IP地址、IP分组的协议字段、TCP或UDP数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。 
3. TCP/UDP区别(不仅是宏观上的,最好能根据各自的机制讲解清楚) 
1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 
2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保 证可靠交付 
3、TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的 
UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等) 
4、每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信 
5、TCP首部开销20字节;UDP的首部开销小,只有8个字节 
6、TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道 
4. HTTP状态码(最好结合使用场景,比如在缓存命中时使用哪个) 
1**(信息类):表示接收到请求并且继续处理 
100——客户必须继续发出请求 
101——客户要求服务器根据请求转换HTTP协议版本

2**(响应成功):表示动作被成功接收、理解和接受 
200——表明该请求被成功地完成,所请求的资源发送回客户端 
201——提示知道新文件的URL 
202——接受和处理、但处理未完成 
203——返回信息不确定或不完整 
204——请求收到,但返回信息为空 
205——服务器完成了请求,用户代理必须复位当前已经浏览过的文件 
206——服务器已经完成了部分用户的GET请求

3**(重定向类):为了完成指定的动作,必须接受进一步处理 
300——请求的资源可在多处得到 
301——本网页被永久性转移到另一个URL 
302——请求的网页被转移到一个新的地址,但客户访问仍继续通过原始URL地址,重定向,新的URL会在response中的Location中返回,浏览器将会使用新的URL发出新的Request。 
303——建议客户访问其他URL或访问方式 
304——自从上次请求后,请求的网页未修改过,服务器返回此响应时,不会返回网页内容,代表上次的文档已经被缓存了,还可以继续使用 
305——请求的资源必须从服务器指定的地址得到 
306——前一版本HTTP中使用的代码,现行版本中不再使用 
307——申明请求的资源临时性删除

4**(客户端错误类):请求包含错误语法或不能正确执行 
400——客户端请求有语法错误,不能被服务器所理解 
401——请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用 
HTTP 401.2 - 未授权:服务器配置问题导致登录失败 
  HTTP 401.3 - ACL 禁止访问资源 
  HTTP 401.4 - 未授权:授权被筛选器拒绝 
HTTP 401.5 - 未授权:ISAPI 或 CGI 授权失败 
402——保留有效ChargeTo头响应 
403——禁止访问,服务器收到请求,但是拒绝提供服务 
HTTP 403.1 禁止访问:禁止可执行访问 
  HTTP 403.2 - 禁止访问:禁止读访问 
  HTTP 403.3 - 禁止访问:禁止写访问 
  HTTP 403.4 - 禁止访问:要求 SSL 
  HTTP 403.5 - 禁止访问:要求 SSL 128 
  HTTP 403.6 - 禁止访问:IP 地址被拒绝 
  HTTP 403.7 - 禁止访问:要求客户证书 
  HTTP 403.8 - 禁止访问:禁止站点访问 
  HTTP 403.9 - 禁止访问:连接的用户过多 
  HTTP 403.10 - 禁止访问:配置无效 
  HTTP 403.11 - 禁止访问:密码更改 
  HTTP 403.12 - 禁止访问:映射器拒绝访问 
  HTTP 403.13 - 禁止访问:客户证书已被吊销 
  HTTP 403.15 - 禁止访问:客户访问许可过多 
  HTTP 403.16 - 禁止访问:客户证书不可信或者无效 
HTTP 403.17 - 禁止访问:客户证书已经到期或者尚未生效 
404——一个404错误表明可连接服务器,但服务器无法取得所请求的网页,请求资源不存在。eg:输入了错误的URL 
405——用户在Request-Line字段定义的方法不允许 
406——根据用户发送的Accept拖,请求资源不可访问 
407——类似401,用户必须首先在代理服务器上得到授权 
408——客户端没有在用户指定的饿时间内完成请求 
409——对当前资源状态,请求不能完成 
410——服务器上不再有此资源且无进一步的参考地址 
411——服务器拒绝用户定义的Content-Length属性请求 
412——一个或多个请求头字段在当前请求中错误 
413——请求的资源大于服务器允许的大小 
414——请求的资源URL长于服务器允许的长度 
415——请求资源不支持请求项目格式 
416——请求中包含Range请求头字段,在当前请求资源范围内没有range指示值,请求也不包含If-Range请求头字段 
417——服务器不满足请求Expect头字段指定的期望值,如果是代理服务器,可能是下一级服务器不能满足请求长。

5**(服务端错误类):服务器不能正确执行一个正确的请求 
HTTP 500 - 服务器遇到错误,无法完成请求 
  HTTP 500.100 - 内部服务器错误 - ASP 错误 
  HTTP 500-11 服务器关闭 
  HTTP 500-12 应用程序重新启动 
  HTTP 500-13 - 服务器太忙 
  HTTP 500-14 - 应用程序无效 
  HTTP 500-15 - 不允许请求 global.asa 
  Error 501 - 未实现 
HTTP 502 - 网关错误 
HTTP 503:由于超载或停机维护,服务器目前无法使用,一段时间后可能恢复正常 
5. HTTP协议(一些报头字段的作用,如cace-control、keep-alive) 
概括如下: 
* 承载与TCP协议之上,有时也承载于TLS或SSL协议层之上,这个时候,就成了我们常说的HTTPS。 
* 默认HTTP的端口号为80,HTTPS的端口号为443。 
* HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。 
* http请求由三部分组成,分别是:请求行、消息报头、请求正文 
* 请求方法主要有GET和POST两种 
GET:在浏览器的地址栏中输入网址的方式访问网页时,浏览器采用GET方法向服务器获取资源。 
POST:要求被请求服务器接受附在请求后面的数据,常用于提交表单。 
参考:HTTP详解 
参考2:HTTP内容 
6. OSI协议、TCP/IP协议以及每层对应的协议。 
* 应用层:文件传输、电子邮件、文件服务、虚拟终端(HTTP\SMTP\FTP\DNS\) 
* 表示层:(没有协议(Telnet)) 
* 会话层:(没有协议) 
* 传输层:提供端对端的接口(TCP/UDP) 
* 网络层:为数据包选择路由(IP\ICMP\ARP) 
* 数据链路层:传输有地址的帧(PPP\RARP) 
* 物理层:以二进制形式在物理媒体上传输数据 
7. SESSION机制、cookie机制 
* cookie通过客户端确定记录信息确定用户身份,session通过服务器端记录信息确定用户身份。 
* 虽然Session保存在服务器,对客户端是透明的,它的正常运行仍然需要客户端浏览器的支持。这是因为Session需要使用Cookie作为识别标志。HTTP协议是无状态的,Session不能依据HTTP连接来判断是否为同一客户,因此服务器向客户端浏览器发送一个名为JSESSIONID的Cookie,它的值为该Session的id(也就是HttpSession.getId()的返回值)。Session依据该Cookie来识别是否为同一用户。 
8. TCP三次握手、四次挥手(这个问题真的要回答吐了,不过真的是面试官最喜欢问的,建议每天手撸一遍,而且不只是每次请求的过程,各种FIN_WAIT、TIME_WAIT状态也要掌握)。 
9. 打开网页到页面显示之间的过程(涵盖了各个方面,DNS解析过程,Nginx请求转发、连接建立和保持过程、浏览器内容渲染过程,考虑的越详细越好)。 
10. http和https区别,https在请求时额外的过程,https是如何保证数据安全的 
11. IP地址子网划分 
12. POST和GET区别 
13. DNS解析过程 
14. TCP如何保证数据的可靠传输的(这个问题可以引申出很多子问题,拥塞控制慢开始、拥塞避免、快重传、滑动窗口协议、停止等待协议、超时重传机制,最好都能掌握) 
15. 地址解析协议ARP 
16. 交换机和路由器的区别 
* 路由器可以给你的局域网自动分配IP,虚拟拨号,就像一个交通警察,指挥着你的电脑该往哪走,你自己不用操心那么多了。交换机只是用来分配网络数据的。 
* 路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以。交换机在中继层,交换机根据MAC地址寻址 
* 路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。 
* 路由器提供防火墙的服务,交换机不能提供该功能。集线器、交换机都是做端口扩展的,就是扩大局域网(通常都是以太网)的接入点,也就是能让局域网可以连进来更多的电脑。 路由器是用来做网间连接,也就是用来连接不同的网络。

转载于:https://my.oschina.net/u/3754919/blog/1831134

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值