0
TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。
TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。
TCP/IP传输协议是严格来说是一个四层的体系结构,应用层、传输层、网络层和数据链路层都包含其中。
1 三种模型的横向理解
- TCP/IP:
- 数据链路层:ARP,RARP
- 网络层: IP,ICMP,IGMP
- 传输层:TCP ,UDP,UGP
- 应用层:Telnet,FTP,SMTP,SNMP,HTTP.
- OSI:
-
物理层:EIA/TIA-232, EIA/TIA-499, V.35, V.24, RJ45, Ethernet, 802.3, 802.5, FDDI, NRZI, NRZ, B8ZS
-
数据链路层:Frame Relay, HDLC, PPP, IEEE 802.3/802.2, FDDI, ATM, IEEE 802.5/802.2
-
网络层:IP,IPX,AppleTalk DDP
-
传输层:TCP,UDP,SPX
-
会话层:RPC,SQL,NFS,NetBIOS,names,AppleTalk,ASP,DECnet,SCP
-
表示层:TIFF,GIF,JPEG,PICT,ASCII,EBCDIC,encryption,MPEG,MIDI,HTML
-
应用层:FTP,WWW,Telnet,NFS,SMTP,Gateway,SNMP
FOR:https://blog.csdn.net/lisa890608/article/details/8231666
1.2 TCP/IP分层模型简单说明
应用层:应用层处在分层模型的最高层,用户调用应用程序来访问 TCP/IP 互联网络,
以享受网络上提供的各种服务。应用程序负责发送和接收数据。每个应用程序可以选择所需要
的传输服务类型,并把数据按照传输层的要求组织好,再向下层传送,包括独立的报文序列和连续字节流两种类型。
传输层:传输层的基本任务是提供应用程序之间的通信服务 。
传输层既要系统地管理数据信息的流动,还要提供可靠的传输服务,以确保数据准确而 有序地到达目的地。所以传输层协议软件需要进行协商,让接收方回送确认信息及让发送方重发丢失的分组。在传输层与网际层之间传递的对象是传输层分组。
只在通信双方的节点上(比如计算机终端)进行处理,而无需在路由器上处理,传输层是OSI中最重要、最关键的一层,是唯一负责总体的数据传输和数据控制的一层;
传输层提供端到端的交换数据的机制,检查分组编号与次序,传输层对其上三层如会话层等,提供可靠的传输服务,对网络层提供可靠的目的地站点信息主要功能
在这一层,数据的单位称为数据段(segment)
网际层:又叫做IP层,主要处理机器之间的通信问题,它接收传输层请求,传送某个具有目的地址信息的分组,有三个主要功能:把分组封装到IP数据报中,把数据报直接送到目标机或路由器,再把数据报交给下面的网络接口层中对应的网络接口模块。
将数据传输到目标地址;目标地址可以使多个网络通过路由器连接而成的某一个地址,主要负责寻找地址和路由选择,网络层还可以实现拥塞控制、网际互连等功能
在这一层,数据的单位称为数据包(packet)
网络层协议的代表包括:IP、IPX、RIP、OSPF...等
网络接口层:又叫做数据链路层,负责发送/接收IP数据报
PS:其实在应用层、表示层、会话层这三层,协议可以共用:
1.1. 传输层协议 TCP 和 UDP
-
TCP(Transmission Control Protocol,传输控制协议),是整个 TCP/IP 协议族中最重要的协议之一。它在 IP 提供的不可靠数据服务的基础上,为应用程序提供了一个可靠的、面向连接的、全双工的数据传输服务.
-
用户数据报协议(User Datagram Protocol,UDP)是一种不可靠的、无连接的协议,可以保证应用程序进程间的通信。与同样处在传输层的面向连接的 TCP 相比较,UDP 是一种无连接的协议,它的错误检测功能要弱得多。
-
可以这样说,TCP 有助于提供可靠性:而 UDP 则有助于提高传输的高速率性
应用层协议 | 简述作用 | 默认端口号 | 对应的传输层层协议 | 实用的场景 |
---|---|---|---|---|
HTTP超文本传输协议 | 提供Web服务 | 80 | TCP | |
HTTPS | 加密Web服务 | 443 | TCP | |
FTP文件传输协议 | 共享文件 | 20/21 | TCP | |
TFTP简单的文件传输 | 69 | TCP | ||
SSH | 远程登录(密文) | 22 | TCP | |
Telnet | 远程登录(明文) | 23 | TCP | |
RDP远程桌面协议 | 远程桌面显示 | 3389 | TCP | |
POP3电子邮件协议三 | 接收邮件 | 110 | TCP | |
SMTP简单邮件传输协议 | 发送邮件 | 25 | TCP | |
SMB协议 | 通信服务 | 445 | TCP | |
DHCP动态主机控制协议 | 动态分配IP | 67/68 | UDP | |
DNS域名解析协议 | 解析域名 | 53 | UDP |
tips:TCP/IP 协议不包含具体的物理层和数据链路层,只定义了网络接口层作为物理层与网络层的接口规范。
1.1.网际层协议IP
- 由于IP只提供无连接、不可靠的服务,所以把差错检测和流量控制之类的服务授权给其他的各层协议,这正是 TCP/IP 能够高效率工作的一个重要保证。这样,可以根据传送数据的属性来确定所需的传送服务以及客户应该使用的协议。例如,传送大型文件的FTP会话就需要面向连接的、可靠的服务(因为如果稍有损坏,就可能导致整个文件无法使用)。
- IP的主要功能包括将上层数据(如 TCP、UDP 数据)或同层的其他数据(如 ICMP 数据)封装到 IP 数据报中;将 IP 数据报传送到最终目的地;为了使数据能够在链路层上进行传输,- 对数据进行分段;确定数据报到达其他网络中的目的地的路径。
[========]
- IP 协议软件的工作流程:
1. 当发送数据时,源计算机上的 IP 协议软件必须确定目的地是在同一个网络上,还是在另一个网络上。
2. IP 通过执行这两项计算并对结果进行比较,才能确定数据到达的目的地。如果两项计算的结果相同,则数据的目的地确定为本地;否则,目的地应为远程的其他网络。如果目的地在本地,那么 IP 协议软件就启动直达通信;如果目的地是远程计算机,那么 IP 必须通过网关(或路由器)进行通信,在大多数情况下,这个网关应当是默认网关。
3. 当源 IP 完成了数据报的准备工作时,它就将数据报传递给网络访问层,网络访问层再将数据报传送给传输介质,最终完成数据帧发往目的计算机的过程。
4. 当数据抵达目的计算机时,网络访问层首先接收该数据。网络访问层要检查数据帧有无错误,并将数据帧送往正确的物理地址。假如数据帧到达目的地时正确无误,网络访问层便从数据帧的其余部分中提取数据有效负载(Payload),然后将它一直传送到帧层次类型域指定的协议。在这种情况下,可以说数据有效负载已经传递给了IP。
1.2. ARP和RARP
- 地址解析协议(Address Resolution Protocol, ARP)及反地址解析协议(RARP)是驻留在网际层中的重要协议。ARP 的作用是将 IP 地址转换为物理地址,RARP 的作用是将物理地址转换为IP 地址。网络中的任何设备,主机、路由器和交换机等均有唯一的物理地址,该地址通过网卡给出,每个网卡出厂后都有不同的编号,这意味着用户所购买的网卡有着唯一的物理地址。另一方面,为了屏蔽底层协议及物理地址上的差异,IP 协议又使用了 IP 地址,因此,在数据传输过程中,必须对 IP 地址与物理地址进行相互转换。
1.3.网际层协议 ICMP 和 IGMP
- Internet 控制信息协议(Internet Control Message Protocol,ICMP)是网际层的另一个比较重要的协议。由于 IP 是一种尽力传送的通信协议,即传送的数据报可能丢失、重复、延迟或乱序,因此 IP 需要一种避免差错并在发生差错时报告的机制。ICMP 就是一个专门用于发送差错报文的协议。
- IGMP(网际组管理协议):管理多播组测成员关系。。。。
[========]
2.0纵向数据流理解
2.1一个面试题
从 URL 输入并访问到页面展现到底发生什么?
答1:https://segmentfault.com/a/1190000017184701
答2:https://github.com/kaola-fed/blog/issues/271
答3:https://zhuanlan.zhihu.com/p/57895541
- :这题目太大了,毕竟看似简简单单的打开一个网页,其实是几十年来计算机科学发展的结晶。比如更底层的如何处理键盘输入,广域网路由选择协议,比如更服务器端的负载均衡,缓存,高可用,都是可能的切入点。实际回答什么重点还是要看面试岗位或者说你感兴趣的部分。
- 但是其中有一个关键点就是 : 请求/响应报文 !!
这个点可以理解为:按照了一定格式写好内容但没有封起来还没寄出的信纸。
2.2 封装和分用
https://zhuanlan.zhihu.com/p/488014376
TCP/IP协议族的封装与分用
tips:
物理层 (一层) PDU 指数据位 (Bit)
数据链路层 (二层) PDU 指数据帧 (Frame)
网络层 (三层) PDU 指数据包 (Packet)
传输层 (四层) PDU 指数据段 (Segment)
第五层以上为数据 (data)
最后来个图看全局:
侵删: