网络知识 | 《图解TCP/IP》读书笔记(下)

网络知识 | 《图解TCP/IP》读书笔记(下)

【网络知识作者 / Edison Zhou

这是EdisonTalk的第291篇原创内容


作为一个专业的IT技术人,一个Web应用开发者,不了解网络基础和协议,怎么能行?本文是我2016年阅读《图解TCP/IP》一书的读书笔记下半部分。

上半部分:点此阅读

1TCP与UDP

TCP(Transmission Control Protocol)与UDP(User Datagram Protocol)
传输层的作用

TCP:面向连接的、可靠的流协议,提供可靠的通信传输。

所谓流,就是指不间断的数据结构,你可以把它想象成排水管道中的水流。当应用程序采用TCP发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。

UDP:面向无连接的,具有不可靠性的数据报协议。(让广播和细节控制交给应用的通信传输)

TCP用于在传输层有必要实现可靠传输的情况,由于它是面向连接并具备顺序控制、重发控制等机制的,所以它可以为应用提供可靠传输。而UDP则主要用于那些对高速传输和实时性有较高要求的通信或广播通信。

因此,TCP和UDP应该根据应用目的按需使用。另外,在日常使用TCP或UDP时,通常会用到操作系统提供的类库,这种类库一般被称为API,对于TCP或UDP来说会广泛使用到套接字(Socket)的API。应用程序使用套接字时,可以设置对端的IP地址、端口号,并实现数据的发送与接收。

网络知识 | 《图解TCP/IP》读书笔记(下)

端口号

MAC地址和IP地址分别用来识别同一链路中不同的计算机以及TCP/IP网络中互连的主机和路由器。在传输层,则使用端口号来识别同一台计算机中进行通信的不同应用程序。

网络知识 | 《图解TCP/IP》读书笔记(下)

一般知名端口号在0~1023之间,而我们经常使用的自定义/动态分配的端口号则一般在49152~65535之间。

UDP

UDP(User Datagram Protocol)不提供复杂的控制机制,利用IP提供面向无连接的通信服务。因此,它不会负责:流量控制、丢包重发等。

UDP广泛应用于: 

1、包量较少的通信(DNS、SNMP等)

2、视频、音频等多媒体通信(即时通信)

3、限定于LAN等特定网络中的应用通信 

4、广播通信(广播、多播)

TCP

TCP作为一种面向有连接的协议,只有在确认通信对端存在时才会发送数据,从而可以控制通信流量的浪费。

为了通过IP数据报实现可靠性传输,需要考虑很多事情,例如:数据的破坏、丢包、重复以及分片顺序混乱等问题。

TCP通过检验和、***、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。

使用TCP的一个连接的建立与断开,正常过程下至少需要来回发送7个包才能完成,也就是我们常常听到的三次握手,两次挥手。

网络知识 | 《图解TCP/IP》读书笔记(下)

2路由协议

在互联网世界中,夹杂着复杂的局域网和广域网,然后,再复杂的网络结构中,也需要通过合理的路由将数据发送到目标主机。而决定这个路由的,正是路由控制模块。

静态路由和动态路由

静态路由:事先设置好路由器和主机中并将路由信息固定的一种方法;

eg.有100个IP网的时候,就需要手动设置近100个路由信息。并且,每增加一个新的网络,就需要将这个新追加的网络信息设置在所有的路由器上。因此,管理负担很大。此外,一旦某个路由器发生故障,基本上无法自动绕过发生故障的节点,必须手工设置后才能恢复。

动态路由:让路由协议在运行过程中自动地设置路由控制信息的一种方法;

eg.如果有一个新的网络追加到原有网络中,只要在新增加网络的路由器上进行一个动态路由的设置即可。此外,网络上一旦发生故障,路由器的设置也会自动重置。

网络知识 | 《图解TCP/IP》读书笔记(下)

动态路由会给相邻路由器发送自己已知的网络连接信息,而这些信息又像接力一样依次传递给其他路由器,直到整个网络都了解时,路由控制表也就制作完成了,而此时也就可以正确转发IP数据包了。

网络知识 | 《图解TCP/IP》读书笔记(下)

路由算法

最具代表性的路由算法是:距离向量(Distance-Vector)算法和链路状态(Link-State)算法。

(1)距离向量算法

根据距离(代价)和方向决定目标网络或者目标主机位置的一种方法。

网络知识 | 《图解TCP/IP》读书笔记(下)

(2)链路状态算法

在了解网络整体连接状态的基础上生成路由控制表的一种方法,该方法中,每个路由器必须保持同样的信息才能进行正确的路由选择。

网络知识 | 《图解TCP/IP》读书笔记(下)

路由协议

(1)RIP(Routing Information Protocol)

RIP是距离向量型的一种路由协议,广泛应用于LAN。

广播路由:RIP将路由控制信息定期(30秒)向全网广播。

确定路由:RIP基于距离向量算法决定路由,距离的单位被称为“跳数”(经过的路由器的个数),RIP希望经过尽可能少的路由器将数据包发送到目标IP地址。

(2)OSPF(Open Shortest Path First)

OSPF是一种链路状态型路由协议,即使网络中有环路,也能够进行稳定的路由控制。

3应用层协议

远程登录

Telnet利用TCP的一跳连接,通过这一条连接向主机发送文字命令并在主机上执行。但是Telnet中登录时无需输入密码就可以发送,容易造成通信窃听和非法侵入的危险。

SSH是加密的远程登录系统,可以加密通信内容。即使信息被窃听也无法**所发送的密码、具体命令以及命令返回结果是什么。

文件传输

FTP是在两个计算机之间进行文件传输时使用的协议,它使用两条TCP连接:一条用于控制,一条则用于数据的传输。

(1)FTP控制使用的连接使用的是TCP21号端口(SFTP用的是22号端口)

(2)FTP用于数据传输的TCP连接通常使用20号端口

网络知识 | 《图解TCP/IP》读书笔记(下)电子邮件

SMTP(Simple Mail Transfer Protocol)提供电子邮件服务协议,而一般接收端会使用POP3(Post Office Protocol)协议。

(1)SMTP是发送电子邮件的协议,它使用TCP的25号端口。它在建立一个TCP连接以后,便在这个连接上进行控制和应答以及数据的发送。

(2)POP是接收电子邮件的协议,它和SMTP一样,也是在客户端与服务端之间建立一个TCP连接完成相应操作。

WWW

HTTP(Hyper Text Transfer Protocol)默认使用TCP的80端口,首先是客户端向服务器的80端口建立一个TCP连接,然后在这个TCP连接上进行请求和应答以及数据报文的发送。

网络管理

SNMP(Simple Network Management Protocol)常用于TCP/IP的网络管理。利用SNMP可以对连接到网络的设备进行远程管理,例如修改设置和确认是否运行正常等等。

Ref参考资料

[日]竹下隆史,《图解TCP/IP》

上半部分传送门:点此阅读