TCP/IP初学习(基础介绍)

815 阅读3分钟

思维导图

协议分层

最开始学习的时候是4层协议,之后网上很多文章就将TCP/IP协议转变为5层了。

名称 功能 协议
应用层(application) 文件传输 NFS FTP DNS
传输层(Transport) 提供端对端的接口 TCP UDP
网络层(Network) 为数据包选择路由 TCMP IP ARP RARP
数据链路层(Data link) 传输有地址的帧 PPP SLP MTU
物理层(phy) 二进制传输数据 IEEE 802.1A

数据包

  • 包、帧、数据包、段、消息
    • 包可以说是全能性术语;
    • 帧用于表示数据链路层中包的单位;
    • 数据包是 IP 和 UDP 等网络层以上的分层中包的单位;
    • 段则表示 TCP 数据流中的信息;
    • 消息是指应用协议中数据的单位。

TCP/IP传输数据是层层分包。经过一层加上一层数据。到达目的地以后层层解包。直至到达想要的目的地。

TCP/IP传输数据
现在更多的是关于IP包以及TCP包的分析。以后应该会深入的分析这些。现在还是先学习基础吧。 传输层解析一个包的时候就是将传输层包首部拿出来解析,以判断是TCP包还是UDP包。

数据流传输

数据流传输

* 传输层加上TCP的数据包,在这里指定端口。源端口以及目的端口
* 网络层加上IP包。在这里指定源IP地址以及目的IP地址。
* 链路层加上以太网包。在这里指定MAC地址(6字节 48位)

传输层中的 TCP 和 UDP

TCP分析

Transmission Control Protocol传输可控制协议。可控、可靠。 是面向连接的、可靠的流协议。流就是指不间断的数据结构,

三次握手协议

TCP协议的特点主要有:

  • 建立连接、形成传输数据的通道
  • 数据大小不受限制
  • 三次握手来实现连接、是一种可靠的、安全的协议
  • TCP的握手环节、需要实现3次连接、4次断开
    TCP三次握手
    TCP四次回手
UCP分析

User Datagram Protocol用户数据报协议,不可靠 一种无连接的、提供面向事务的简单、不可靠信息传送服务的协议。 UDP协议的特点主要有:

  • 只负责数据的发送
  • 将数据信息封装在数据包中、不需要建立连接
  • 每个数据包的大小限制在64K以内
  • 传输速度快

端口号分析

前文已经提到过MAC地址在链路层加上的以太网首部中的。 IP地址由网络层加上的IP首部中的。 那么传输层中的地址就被称为端口。端口是用来识别同一台计算机进行通信的不同应用程序。因此被称为程序地址

根据端口号识别应用

传输协议利用端口识别本机中正在运行的程序。

通过端口号识别应用
利用IP地址确定主机后。将会端口号确定什么对应的程序。

通过 IP 地址、端口号、协议号进行通信识别

通过端口号、IP地址、协议号进行通信识别
①中的数据可以查看到客户端A源端口与以及目标端口。 通讯由IP地址指定目标主机,由端口指定目标程序。 至于MAC的地址,会在后面提到。暂时先跳过。

端口号确定

未通讯之前怎么知道那个端口是哪个应用?

  • 0~1023端口是固定的。知名端口列表
  • 1024~49151端口虽然已经注册。但是可以自用。问题不大。
  • 49152~65535端口该段端口属于“动态端口”范围,没有端口可以被正式地注册占用。
端口号与协议
  • 端口号由其使用的传输层协议决定。因此,不同的传输层协议可以使用相同的端口号
  • 此外,那些知名端口号与传输层协议并无关系。只要端口一致都将分配同一种应用程序进行处理。

参考资料

https://www.jianshu.com/p/9368c47bea22
https://juejin.im/post/5a069b6d51882509e5432656 
https://blog.csdn.net/lg2lh/article/details/51257751