美文网首页三分迷惘
计算机网络重点总结

计算机网络重点总结

作者: Then丶 | 来源:发表于2019-09-29 13:23 被阅读0次

https://github.com/6923403/interview


TCP/UDP 图片来源于:https://github.com/JerryC8080/understand-tcp-udp

TCP 传输连接管理

因为 TCP 三次握手建立连接、四次挥手释放连接很重要,所以附上《计算机网络(第 7 版)-谢希仁》书中对此章的详细描述:https://github.com/huihut/interview/blob/master/images/TCP-transport-connection-management.png



TCP 为什么要进行三次握手?

【答案一】因为信道不可靠,而 TCP 想在不可靠信道上建立可靠地传输,那么三次通信是理论上的最小值。(而 UDP 则不需建立可靠传输,因此 UDP 不需要三次握手。)

Google Groups . TCP 建立连接为什么是三次握手?{技术}{网络通信}

【答案二】因为双方都需要确认对方收到了自己发送的序列号,确认过程最少要进行三次通信。

知乎 . TCP 为什么是三次握手,而不是两次或四次?

【答案三】为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误。

《计算机网络(第 7 版)-谢希仁》


【TCP 释放连接全过程解释】

客户端发送 FIN 给服务器,说明客户端不必发送数据给服务器了(请求释放从客户端到服务器的连接);

服务器接收到客户端发的 FIN,并回复 ACK 给客户端(同意释放从客户端到服务器的连接);

客户端收到服务端回复的 ACK,此时从客户端到服务器的连接已释放(但服务端到客户端的连接还未释放,并且客户端还可以接收数据);

服务端继续发送之前没发完的数据给客户端;

服务端发送 FIN+ACK 给客户端,说明服务端发送完了数据(请求释放从服务端到客户端的连接,就算没收到客户端的回复,过段时间也会自动释放);

客户端收到服务端的 FIN+ACK,并回复 ACK 给客户端(同意释放从服务端到客户端的连接);

服务端收到客户端的 ACK 后,释放从服务端到客户端的连接。



TCP 有限状态机


应用层

DNS

DNS(Domain Name System,域名系统)是互联网的一项服务。它作为将域名和 IP 地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 端口 53。当前,对于每一级域名长度的限制是 63 个字符,域名总长度则不能超过 253 个字符。

域名:

域名 ::= {<三级域名>.<二级域名>.<顶级域名>},如:blog.huihut.com

FTP

FTP(File Transfer Protocol,文件传输协议)是用于在网络上进行文件传输的一套标准协议,使用客户/服务器模式,使用 TCP 数据报,提供交互式访问,双向传输。

TFTP(Trivial File Transfer Protocol,简单文件传输协议)一个小且易实现的文件传输协议,也使用客户-服务器方式,使用UDP数据报,只支持文件传输而不支持交互,没有列目录,不能对用户进行身份鉴定

TELNET

TELNET 协议是 TCP/IP 协议族中的一员,是 Internet 远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。

HTTP(HyperText Transfer Protocol,超文本传输协议)是用于从 WWW(World Wide Web,万维网)服务器传输超文本到本地浏览器的传送协议。

SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

Socket 建立网络通信连接至少要一对端口号(Socket)。Socket 本质是编程接口(API),对 TCP/IP 的封装,TCP/IP 也要提供可供程序员做网络开发所用的接口,这就是 Socket 编程接口。

WWW

WWW(World Wide Web,环球信息网,万维网)是一个由许多互相链接的超文本组成的系统,通过互联网访问

URL

URL(Uniform Resource Locator,统一资源定位符)是因特网上标准的资源的地址(Address)

标准格式:

协议类型:[//服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]

完整格式:

协议类型:[//[访问资源需要的凭证信息@]服务器地址[:端口号]][/资源层级UNIX文件路径]文件名[?查询][#片段ID]

其中【访问凭证信息@;:端口号;?查询;#片段ID】都属于选填项

如:https://github.com/huihut/interview#cc


状态码(Status-Code)

1xx:表示通知信息,如请求收到了或正在进行处理

100 Continue:继续,客户端应继续其请求

101 Switching Protocols 切换协议。服务器根据客户端的请求切换协议。只能切换到更高级的协议,例如,切换到 HTTP 的新版本协议

2xx:表示成功,如接收或知道了

200 OK: 请求成功

3xx:表示重定向,如要完成请求还必须采取进一步的行动

301 Moved Permanently: 永久移动。请求的资源已被永久的移动到新 URL,返回信息会包括新的 URL,浏览器会自动定向到新 URL。今后任何新的请求都应使用新的 URL 代替

4xx:表示客户的差错,如请求中有错误的语法或不能完成

400 Bad Request: 客户端请求的语法错误,服务器无法理解

401 Unauthorized: 请求要求用户的身份认证

403 Forbidden: 服务器理解请求客户端的请求,但是拒绝执行此请求(权限不够)

404 Not Found: 服务器无法根据客户端的请求找到资源(网页)。通过此代码,网站设计人员可设置 “您所请求的资源无法找到” 的个性页面

408 Request Timeout: 服务器等待客户端发送的请求时间过长,超时

5xx:表示服务器的差错,如服务器失效无法完成请求

500 Internal Server Error: 服务器内部错误,无法完成请求

503 Service Unavailable: 由于超载或系统维护,服务器暂时的无法处理客户端的请求。延时的长度可包含在服务器的 Retry-After 头信息中

504 Gateway Timeout: 充当网关或代理的服务器,未及时从远端服务器获取请求

更多状态码:菜鸟教程 . HTTP状态码


其他协议

SMTP(Simple Main Transfer Protocol,简单邮件传输协议)是在 Internet 传输 Email 的标准,是一个相对简单的基于文本的协议。在其之上指定了一条消息的一个或多个接收者(在大多数情况下被确认是存在的),然后消息文本会被传输。可以很简单地通过 Telnet 程序来测试一个 SMTP 服务器。SMTP 使用 TCP 端口 25。

DHCP(Dynamic Host Configuration Protocol,动态主机设置协议)是一个局域网的网络协议,使用 UDP 协议工作,主要有两个用途:

用于内部网络或网络服务供应商自动分配 IP 地址给用户

用于内部网络管理员作为对所有电脑作中央管理的手段

SNMP(Simple Network Management Protocol,简单网络管理协议)构成了互联网工程工作小组(IETF,Internet Engineering Task Force)定义的 Internet 协议族的一部分。该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。


相关文章

  • 计算机网络重点总结

    https://github.com/6923403/interview TCP 传输连接管理 因为 TCP 三次...

  • 计算机网络系列之计算机网络学习入门攻略

    序言 在前面总结完了C语言系列,现在来总结一下计算机网络的知识,这部分我准备不会向C语言那样只找重点来讲,而是想要...

  • 技能树2

    研发工程师岗位考察的基础可以大致总结如下: 1,操作系统。尤其是内存/线程/进程方面 2,计算机网络协议,重点关注...

  • 自顶向下 | 带你遨游网络层

    前言 网络层的知识点非常繁多,本文仅是基于《计算机网络 自顶向下》而总结的一些重点知识点,如果想要详细了解网络层的...

  • 面试基础知识

    计算机网络 计算机网络知识总结 2018/2019/校招/春招/秋招/算法/机器学习(Machine Learni...

  • 计网中常见面试题

    写在前面 之前在总结计算机网络重点笔记的时候,已经对一些问题有了比较深刻的认识。这篇笔记中,我们将面经中看到的,计...

  • 重点总结

    第一课 1.每个孩子的天生气质不同,有激进型,冷静型,忧郁型,奉献型,乐天型 2.心里有眼睛才会有 3.王氏三元法...

  • 软件测试人员需要懂这些网络知识点

    一、网络分类 电信网络(电话网) 有线电视网络 计算机网络(发展最快、信息时代的核心技术) 这里重点讲计算机网络 ...

  • 关于软件测试工程师你必须知道的是...

    一、网络分类 电信网络(电话网) 有线电视网络 计算机网络(发展最快、信息时代的核心技术) 这里重点讲计算机网络 ...

  • 计算机网络2-网络层

    计算机网络2-网络层 主要内容 ipv4 ip分组的交付和转发 重点介绍 地址解析协议 ARP 重点介绍 网际控制...

网友评论

    本文标题:计算机网络重点总结

    本文链接:https://www.haomeiwen.com/subject/jcffpctx.html