标签:cli 模块 add 经典 ica 三次握手 mode 面具 数组
????????TCP/IP是“Transmission Control Protocol/Internet Protocol”的简写,翻译成中文为传输控制协议/互联网网络协议。TCP/IP是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与另一个主机之间的数据来往格式及传送方式。TCP/IP是Interent的基础协议,也是一种计算机数据打包和寻址的标准方法。
????????计算机网络是指将地理位置不同的,具有独立功能的多台计算机及其他外部设备,通过通信线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。
????????20世纪90年代后,以Internet为代表的计算机网络得到了迅猛发展,Internet成为世界上最大的计算机网络。Internet主要由主机,线路,交换,路由,调制解调器等设备组成。
????????主机有不同的形式,主要分为两种:服务器和客户端。在Interent中提供服务的主机叫做服务器,比如各大门户网站,社交平台等;通过访问服务器从而获得有用信息的主机叫做客户端,比如各种家庭计算机和智能手机。
????????将数据从一个主机传输到另一个主机是一个复杂的过程,包括信息格式转换,分发,寻址,物理传输等,在这个过程中还要加入多种校验措施以保证传输的正确性。为了使这个过程利于设计并且向开发者隐匿网络细节,计算机网络被纵向分割为不同的层,每一层表示不同的抽象程序和设计目的。每一层的功能相互独立,这使得它们可以仅完成自己的任务,比如传输编码等。Internet是基于TCP/IP网络而搭建的,TCP/IP将网络分为4层结构,分别是应用层,传输层,网络层,接口层。
应用层:Application Layer,为用户的进程直接提供服务,应用层负责发送及接受什么数据,如果解释数据,如何呈现数据,如何加密数据等问题,是网络应用程度开发者重点打交道的对象。例如HTTPS定义了网络间数据加密认证的标准方法,HTML定义了网页的解析方式等。
接口层:Link Layer,负责相邻物理设备之间的信息传输。接口层的工作非常多且复杂,它需要完成接口层的数据组装(形成Frame),加入必要的控制和校验数据,并且将二进制数据流(0/1)转换为物理链路上的标准电平(高电平,低电平)。针对不同的物理传输介质,接口层定义了多套标准,并且这些标准,并且这些标准随着电子技术的进步一直发展,列如802.3、802.11等/
????????网络设备及部件是连接网络的物理实体。网络设备的种类繁多且与日俱增,网络设备特指Internet除主机外,仅起网络传输及数据交换作用的设备,具体有:集线器,交换机,网桥,路由器,网关,网络接口卡(NIC),无限接入点(WAP),调制解调器,光缆等。
????????网络地址(Network Address)是一个网络层概念,是互联网上的主机在网络中具有的逻辑地址。Internent上采用IP地址表示网络地址。当前有两种形式的IP地址,即IPv4和IPv6.
????????Ipv诞生于1982年,随着TCP/TP的发展壮大,缔造了当今的计算机网络通信模式。IP地址是一个32位二进制的地址,在表达方式上以4个十进制数字表示,比如172.16.32.3,10.38.96.243等。从理论上讲,有大约60亿(2的32次方)中可能的地址组合,这似乎是一个很大的地址空间。实际上,一个IPv4地址被划分两部分:网络地址和主机地址。根据网络地址和主机的不同位数规则,可以将IP地址分为A(8位网络ID和24位主机ID),B(16位网络ID和16位主机ID),C(24位网络ID和8位主机ID)3类,由于历史原因和技术发展的差异,A类地址和B类地址几乎分配已尽。
????????由于IPv4的数据限制,IPv6应运而生。IPv6由128位二进制数组成,在表达方式上用8个16进制数字表示,比如等d23:4334:0:0:23:ade:9853:23.
单从数量级上来说,IPv6所拥有的地址容量约是IPv4的8x10^28倍,达到2^128个。这个不但解决了网络地址资源数量的问题,也位除计算机外的设备连入互联网在数量限制上扫清了障碍。然而让人遗憾的是,IPv6自1999年开始分配以来,并没有在互联网上得到广泛应用。目前互联网的主要地址表达方式及其调制仍主要以IPv
4为主,但IPv6必将会替代IPv4.
????????由于IP地址由纯数字组成,很难让人记忆,且不能表达功能,地址位置等附加含义,所以在TCP/IP网络形成不久,标准化组织就定义了域名这种主机地址表达方式。
????????域名(Domain Name)是一个应用层概念,是由一串用点分隔的名字组成的Internet上某台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名或有行政自主权的一个地方区域)。域名是一个IP地址的“面具”。一个域名是便于人们记忆和沟通的一组服务器的地址(网络,电子邮件,FTP等)。使用域名作为标记互联网计算机的名称已有30多年的历史,世界上第1个被注册的域名是在1985年1月被注册的。
????????域名中的标号都由英文字母和数字组成,每个标号不超过63个字符,也不区分大小写字母。标号中除字符(-)外不能使用其他标点标号。级别最低的域名写在最左边,而级别最高的域名写在最右边。由多个标记组成的完整域名总共不超过255个字符。
????????为统一资源定位符,是用来表示Internet上资源位置的标准。资源位置包括资源所在的主机及其在主机内的访问路径。这里所说的资源是指Internet上任何可访问的对象,包括文本,图像,视频流等。URL的标准形式如下:
[协议://[主机]:[端口]/[路径]?[参数]]
????????其中,【协议】可以是HTTP,FTP等应用层协议;【主机】是域名或IP地址;【端口】是传输层端口号;【路径】是以斜杠“/”分割的主机内的路径;【参数】是以“&”分割的若干键值对。
????????TCP/IP的传输层是网络中承上启下的关键一层,向上对应用层提供通信服务,向下将应用信息封装为网络信息。传输层连接主机之间的进程,同一主机中不同进程的网络通信通过端口(port)进行区分。所以传输层为主机提供的是端口到端口的服务。
????????TCP和UDP是Internet中传输层最重要的两种协议,由于开发者不可避免地要与传输层打交道;
????????所说的端口,不是计算机硬件的I/O端口,而是软件级的概念,就像IP地址是网络层的寻址方式,端口是传输层的寻址方式,端口是一个16位二进制数表达的正整数,数字范围为0-65535,即一个在网络上通信的主机理论上最多有65535个传输层信道。但由于在操作系统和一些应用中端口也被用作同一主机上不同进程之间的通信,所以通常可用的网络端口数量少于65535个。
????????应用程序(调入内存运行后一般被称为进程)通过系统调用与某端口建立连接(Binding,绑定)后,传输层给该端口的数据都被相应的进程所接收,相应的进程发给传输层的数据都从该端口输出。由于TCP/IP传输层的TCP和UDP是两个完全独立的软件模块,因此各自的端口号也相互独立。
????????注意:TCP和UDP可以在同一主机上使用相同的端口而互不干扰。列如TCP有个53号端口,UDP也可以有个53号端口,两者并不冲突。
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的,可靠的,基于字节流的传输层通信协议,由IETF的的RFC793定义。当应用层向TCP层发送用于网间传输的用8位字节表示的数据流时,TCP则把数据流分割成适当长度的报文段,最大传输段大小(MSS)通常受计算机连接的网络的数据链路层的最大传送单元(MTU)限制;
TCP标志位:
三次握手建立连接阐述:
第一次握手:客户端要和服务端进行通信,首先要告知服务端一声,遂发出一个SYN=1的连接请求信号,”服务端哥哥,我想给你说说话”。
第二次握手:当服务端接收到客户端的连接请求,此时要给客户端一个确认信息,”我知道了(ACK),我这边已经准备好了,你现在能连吗(SYN)”。
第三次握手:当客户端收到了服务端的确认连接信息后,要礼貌的告知一下服务端,“好的,咱们开始联通吧(ACK)”。
到此整个建立连接的过程已经结束,接下来就是双方你一句我一句甚至同时交流传递信息的过程了。
四次挥手断开连接阐述:
第一次挥手:双方交流的差不多了,此时客户端也已经结尾了,接下来要断开通信连接,所以告诉服务端“我说完了(FIN)”,此时自身形成等待结束连接的状态。
第二次挥手:服务端知道客户端已经没话说了,服务端此时还有两句心里话要给客户端说,“我知道你说完了(ACK),我再给你说两句,&*……%¥”。
第三次挥手:此时客户端洗耳恭听继续处于等待结束的状态,服务器端也说完了,自身此时处于等待关闭连接的状态,并对告诉客户端,“我说完了,咱们断了吧(FIN)”。
第四次挥手:客户端收知道服务端也说完了,也要告诉服务端一声(ACK),因为连接和断开要双方都按下关闭操作才能断开,客户端同时又为自己定义一个定时器,因为不知道刚才说的这句话能不能准确到达服务端(网络不稳定或者其他因素引起的网络原因),默认时间定为两个通信的最大时间之和,超出这个时间就默认服务器端已经接收到了自己的确认信息,此时客户端就关闭自身连接,服务器端一旦接收到客户端发来的确定通知就立刻关闭服务器端的连接。
到此为止双方整个通信过程就此终结。这里要声明一下:断开链接不一定就是客户端,谁都可以先发起断开指令,另外客户端和服务端是没有固定标准的,谁先发起请求谁就是客户端。
????????UDP(User DataGram Protocol)是一种无连接的传输层协议,提供面向事物的简单的不可靠消息传输服务,IETF RFC768是UDP的正式规范。UDP信息包的标题很短,只有8个字节,相对于TCP的20个字节信息包的额外开销小,因此UDP能提供更快速,轻量级的传输层控制。总结UDP特性如下:
????????由此,不难总结出UDP协议适用的应用场景:吞吐量大(因为只做轻量级控制),可以承受信息丢失(因为传输不可靠)。在网络状况良好的情况下,UDP的丢包率在实际下也非常少,所以仍有很多经典协议采用UDP进行传输,比如SNMP,NFS,DNS,BOOTP等。
????????C/S,即Client/Server,是当前大多数网络编程所使用的架构模型。通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通信开销。Client和Server常常分别处在相距很远的两个计算机上,Client程序的任务是将用户的要求提交给Server程序,再将Server程序返回的结果以特定的形式显示给用户;Server程序的任务是接收客户程序提出的服务请求,进行相应的处理,再将结果返回给客户程序。
????????B/S,即Browser/Server,是Web兴起后的一种网络结构模式。B/S使用Web浏览器作为客户端的应用软件,所以B/S可以看做C/S的一种特殊情况。B/S架构是伴随因特网的兴起而兴起的,是对C/S结构的一种改进,它的主要特点如下:
标签:cli 模块 add 经典 ica 三次握手 mode 面具 数组
原文地址:https://www.cnblogs.com/baishuchao/p/9262989.html