[+] Author: Hope
[+] Team: 希望Team
#What is TCP/IP
TCP/IP 是不同的通信协议的大集合。在了解之前我们先看下 OSI 模型 (一个协议规范集),OSI 将计算机网络体系结构分为以下七层,
OSI 模型 | |
应用层 | 提供应用软件之间的通信。例如:HTTP,HTTPS,FTP,TELNET,SSH,SMTP,POP3等。 |
表示层 | 把数据转换为能与接收者的系统格式兼容并适合传输的格式。 |
会话层 | 负责在数据传输中设置和维护电脑网络中两台电脑之间的通信连接。 |
传输层 | 把传输表头(TH)加至数据以形成数据包 例如:传输控制协议义(TCP)等。 |
网络层 | 决定数据的路径选择和转寄,将网络表头(NH)加至数据包,以形成分组。 |
数据链路层 | 负责网络寻址、错误侦测和改错。例如以太网、无线局域网等。 |
物理层 | 负责管理电脑通信设备和网络媒体之间的互通 |
类比 OSI 模型,我们可以将 TCP/IP 协议分为以下四层,
TCP/IP 模型 | |
应用层 | 应用层协议一般都会使用面向连接的TCP传输控制协议和无连接的包传输的UDP用户数据报文协议。 |
传输层 | 传输层协议例如TCP、UDP、SCTP |
网络互连层 | 网络层解决在一个单一网络上传输数据包的问题。 |
链路层 | 处理连接网络的硬件部分。 |
#How TCP/IP works
重新梳理下 TCP/IP 通信数据流。首先发送端在应用层发送 HTTP 数据,经过传输层 HTTP 数据增加
TCP 首部,再经过网络互连层增加 IP 首部,最后通过链路层增加以太网首部,然后反之从接受端每经过一层便删除首部到达应用层后剩下 HTTP
数据。
接着白话下 TCP 著名的三次握手策略,Client 向 Server 发送消息(第一次握手,目的是确认
Client 是否有发信功能),Server 向 Client 和自己发送确认消息(第二次握手,目的是确认 Server
自己是否有发信收信功能),Client 确认消息后发送消息给 Server (第三次握手)。三次握手结束后,开始通信。
在 TCP/IP 中包含一系列用于处理数据通信的协议:
-
TCP (传输控制协议) – 负责应用软件(比如你的浏览器)和网络软件之间的通信。
-
UDP (用户数据包协议) – 应用程序之间的简单通信
-
IP (网际协议) – 负责计算机之间的通信。
-
ICMP (因特网消息控制协议) – 针对错误和状态
-
DHCP (动态主机配置协议) – 针对动态寻址
#TCP/IP Networking Protocols
运行在 TCP 协议上的协议:
-
HTTP -超文本传输协议 负责 web 服务器与 web 浏览器之间的通信
-
HTTPS – 安全的 HTTP 负责在 web 服务器和 web 浏览器之间的安全通信。
-
FTP – 文件传输协议 负责计算机之间的文件传输。
-
POP3 -邮局协议
-
SMTP – 简易邮件传输协议 用于电子邮件的传输。
-
TELNET 通过一个终端(terminal)登陆到网络。
-
SSH 用于替代安全性差的TELNET,用于加密安全登陆用。
-
BOOTP 应用于无盘设备,用于从网络启动计算机。
-
NTP -网络时间协议 用于网络同步。
-
DHCP – 动态主机配置协议 用于向网络中的计算机分配动态 IP 地址。
其他: -
DNS (Domain Name Service,域名服务),用于完成地址查找,邮件转发等工作(运行在TCP和UDP协议上)。
-
ECHO 用于查错及测量应答时间(运行在TCP和UDP协议上)。
-
SNMP – 简单网络管理协议 用于计算机网络的管理。
-
ARP 用于通过 IP 来查找基于 IP 地址的计算机网卡的硬件地址。
-
LDAP – 轻量级的目录访问协议 用于从因特网搜集关于用户和电子邮件地址的信息。
-
MIME – 多用途因特网邮件扩展 协议使 SMTP 有能力通过 TCP/IP 网络传输多媒体文件,包括声音、视频和二进制数据。
-
PPTP – 点对点隧道协议 用于私人网络之间的连接(隧道)。
#reference
https://zh.wikipedia.org/wiki/TCP/IP%E5%8D%8F%E8%AE%AE%E6%97%8F
https://github.com/jawil/blog/issues/14
http://www.w3school.com.cn/tcpip/index.asp
来自Hope博客:http://h0pe.site/2017/08/22/02/