引言
终于到传输层了,网络层还有很多需要补充的,后期在慢慢填补了。
我们看哈!在物理层我们设计出来各种硬件,然后使它们在物理上相互连接,信号以比特流的形式进行发送;随后,在数据链路层,我们对比特流进行分析,剥离有用的信息后添加上帧头帧尾并进行寻址,还要对数据进行完整性和安全性的检验。同时,我们还引入了媒体访问控制和逻辑链路控制两个层完善了通信系统的功能控制;在网络层,我们引入了IP地址的定义,对网络中的数据添加报头并进行报文交换,通过各种网络技术让我们的数据可以在互联网中传递。至此为止,网络上的用户就可以沟通了?
一,传输层?
传输层是面向通信的最高层,这意味着再往上的应用层就是面向用户的了,传输层起到了承接应用层,辅佐网络层的作用。数据从应用层传来,要在传输层进行首次封装,随后送到网络层,而数据传回应用层时,首先要剥离网络层等其它层报文后,再到传输层剥离该层的报文后交给应用层。传输层起到了在网络边缘主机之间提供可靠进程通信,也就是端到端通信的作用。
传输层有两个重要的协议,之前也都提到过。那就是TCP和UDP 。两个对等体在通信的时候传输的数据称之为数据单位叫作运输协议数据单元(TPDU)。TCP的数据单位被称之为TCP报文段,而UDP的数据单位被称之为UDP报文。
传输层解决了QOS问题,差错控制,多进程访问(端口机制)以及访问控制能力。(其实传输层的功能和网络层有很多相同的地方)。
二,端到端
传输层引入了一个端口的概念,这个东西怎么理解呢?就好比一个做交易的窗口,我要买香蕉,那么找到卖香蕉的店家,然后让他把香蕉称号后打包给我。这就是一个交易过程,而我和他交易的地点就是交易窗口。网络中引入了端口,我们在网上做不同的动作,所对应的端口也是不一样的。比如我要发邮件,就会打开发邮件的端口,我要上微信,就会打开与微信与之关联的端口。这就是因特网中端口的作用。
端口是一个抽象的软件结构(包含数据结构和I/O流),进程则是一个程序运行的过程,程序运行就必然联动着数据的发送,这就绝对会有双方两个端口间的信息交互,从该端口发出的数据通过该端口相应进程发送到对应的接收端口,这就是端到端通信。
端口长度为16bit(0-65535),端口之间还有差异,分别是系统端口(也叫知名端口)和登记端口。系统端口就是我们电脑系统中自带的端口,它的范围在0-1023之间;登记端口就是额外需要登记的端口,比如各种数据库啊!这一类的软件,这些应用就要额外的申请端口。范围在1024-49151之间。
注:端口是仅具有本地意义的!
电脑系统中某个端口信息的设置
一般呢,我们在因特网上用这个方式表达唯一一个进程标识
(SOCKET=IP+Port)
IP地址+端口号
通过以上方式,我们就能更加详细的得知在网络中设备的具体位置以及我需要对其进程开放的端口是什么了。
Socket意思是插头,在网络通信和计算机领域叫做套接字,他在网络中作用如上,它是运作在传输层和应用层之间的。这个东西还应用于编程领域,叫做应用编程接口API,简称SocketAPI,其中包含着Socket函数等相关编程语言,这个就不在此多论述了。
后续
没有什么好讲的,主要是提一下传输层的一些作用和概念,后面的TCP才是大头,要重点讲TCP的运作过程,当然还有UDP,但是因为UDP的特点,我们可以不用太关注它。