该篇介绍宏观层面的TCP/IP协议
一、TCP/IP 协议的层次结构(宏观)
TCP/IP参考模型分为四个层次:应用层、传输层、网络(互连)层和主机到网络层(数据链路层)
1.1 应用层
应用层面向不同的网络应用引入了不同的应用层协议。
- 传输层采用TCP协议的有:
HTTP
:超文本传输协议(Hyper Text Transfer Protocol)HTTPS
:超文本传输安全协议(Hyper Text Transfer Protocol Secure)FTP
:文件传输协议(File Transfer Protocol)它定义了本地登录用户与远程服务器之间的交互过程。SFTP
:文件加密传输协议(Secure File Transfer Protocol)TELNET
:远程登录(Telecommunications Network)提供远程访问其它主机功能,它允许用户登录 internet主机,并在这台主机上执行命令. - 传输层采用UDP协议的有:(一次性传输的数据需求很少)
TFTP
:简单文件传输协议(Trivial File Transfer Protocol)FTP的简化版本SNMP
:简单网络管理协议(Simple Network Management Protocol)该协议提供了监控网络设备的方法,以及配置管理,统计信息收集,性能管理及安全管理等.NTP
:网络时间协议(Network Time Protocol) - 传输层同时采用TCP和UDP协议的有:
DNS
(域名系统):该系统用于在internet中将域名及其公共广播的网络节点转换成IP地址.
Ps:HTTP是面向网页(文本信息)的,而FTP是面向文件的
1.2 传输层
TCP
:传输控制协议(transmission control protocol)UDP
:用户数据报协议(user datagram protocol)
TCP
与UDP
的区别:
- 基于连接与无连接;
- 对系统资源的要求(TCP较多,UDP少);
- UDP程序结构较简单;
- 流模式与数据报模式;
- TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证.
TCP
与 UDP
的主要区别:
UDP具有TCP所望尘莫及的速度优势,但在于UDP不一定提供可靠的数据传输。虽然TCP协议中植入了各种安全保障功能,但是在实际执行的过程中会占用大量的系统开销,无疑使速度受到严重的影响。当某个程序的目标是尽快地传输尽可能多的信息时(其中任意给定数据的重要性相对较低),可使用 UDP。
Ps:许多程序将使用单独的TCP连接和单独的UDP连接;重要的状态信息随可靠的TCP连接发送,而主数据流通过UDP发送。
1.3 网络层(网络互连层)
网络互连层定义了分组格式和协议。
网络互连层除了需要完成路由的功能外,也可以完成将不同类型的网络(异构网)互连的任务。除此之外,网络互连层还需要完成拥塞控制的功能。
IP
:Internet 协议(Internet Protocol)ICMP
:Internet控制信息协议ARP
:地址解析协议RARP
:反向地址解析协议
1.4 网络访问层(主机到网络层)
网络访问层的功能包括IP地址与物理地址硬件的映射,以及将IP封装成帧.基于不同硬件类型的网络接口,网络访问层定义了和物理介质的连接。
二、部分具体介绍
TCP/IP协议:是一组网络协议。在这些协议中,最重要、最著名的就是TCP和IP因此,大部分网络管理员称整个协议族为“TCP/IP”。包括:TCP,IP,UDP,ARP等,这些被称为子协议。
2.1 TCP与IP的区别
由第一章的TCP/IP 协议的层次结构可知,TCP
和 IP
是在不同层的,因此两者本来就天差地别。TCP
:位于传输层,是一种面向连接的、端对端的、可靠的、基于IP的传输层协议。主要特点是3次握手建立连接,4次挥手断开连接。IP
:位于网络层,IP协议规定了数据传输时的基本单元(数据包)和格式,IP协议还定义了数据包的递交办法和路由选择。
总结:
- 整个网络中的传输流程是:IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层————TCP层;相反,IP层也把从TCP接收来的数据包传送到更低层。
- TCP和IP的关系是:IP提供基本的数据传送,而高层的TCP对这些数据包做进一步加工,如提供端口号等等。
2.2 Telnet的衍生(SSH等)
TELNET
:远程登录(Telecommunications Network)提供远程访问其它主机功能;听起来很陌生,但实际上我们是经常使用远程登录的功能,即使用Telnet的衍生;
Telnet
用来訪问远程计算机的TCP/IP协议以控制你的网络设备,是明码传输,缺乏安全性。因此诞生了远程登录的加密传输,如下:
SSH
:Secure Shell(包括SSH1和SSH2)Telnet/SSL
: Secure Socket Layer。Telnet/SSL是带有SSL的Telnet。Rlogin
:Rlogin和Telnet功能使用方法相似,可是简单非常多。Serial
:串行指每次一个事件,它通常跟并行即一次发生多个事件相反,例如键盘和鼠标仅仅须要串行接口和线路TAPI
:telephone Application Programming Interface (它能够使用户在电脑上通过电话或视频电话与电话还有一端的人进行交谈)电话应用编程接口RAW
:大多数打印设备的默认协议
2.3 VPN和SS、SSR
这里讲一下大家常见到的VPN和SSR的来头。
2.3.1 什么是VPN
vpn在很多人心目中就是用来科学上网的工具,其实不是。vpn最主要的功能,并不是用来科学上网,只是它可以达到科学上网的目的。vpn–虚拟专用网络,它的功能是:在公用网络上建立专用网络,进行加密通讯。
2.3.2 什么是ss/ssr
ss:ss作者是clowwindy,大约两年前,他自己为了科学上网写了shadowsocks,简称ss或者叫影梭,后来他觉得这个东西非常好用,速度快,而且不会被封锁,他就把源码共享在了github上,然后就火了,但是后来作者被请去喝茶,删了代码,并且保证不再参与维护更新。现在这个好像是一个国外的大兄弟在维护。
ssr:在ss作者被喝茶之后,github上出现了一个叫breakwa11(破娃)的帐号,声称ss容易被防火墙检测到,所以在混淆和协议方面做了改进,更加不容易被检测到,而且兼容ss,改进后的项目叫shadowsocks-R,简称ssr,然后ss用户和ssr用户自然分成了两个派别,互相撕逼,直到前阵子,破娃被人肉出来,无奈之下删除了ssr的代码,并且解散了所有相关群组。
ss和ssr它的原理都是一样的,就是socks5代理。socks代理只是简单的传递数据包,而不必关心是何种协议,所以socks代理比其他应用层代理要快的多。socks5代理是把你的网络数据请求通过一条连接你和代理服务器之间的通道,由服务器转发到目的地,这个过程中你是没有通过一条专用通道的,只是数据包的发出,然后被代理服务器收到,整个过程并没有额外的处理。通俗的说,现在你有一个代理服务器在香港,比如你现在想要访问google,你的电脑发出请求,流量通过socks5连接发到你在香港的服务器上,然后再由你在香港的服务器去访问google,再把访问结果传回你的电脑,这样就实现了科学上网。