数码科技网站,集团网站建设计划表百度,如何制作营销网站,大航母网站建设与运营我最近开了几个专栏#xff0c;诚信互三#xff01; |||《算法专栏》#xff1a;#xff1a;刷题教程来自网站《代码随想录》。||| |||《C专栏》#xff1a;#xff1a;记录我学习C的经历#xff0c;看完你一定会有收获。||| |||《Linux专栏》#xff1… 我最近开了几个专栏诚信互三 |||《算法专栏》刷题教程来自网站《代码随想录》。||| |||《C专栏》记录我学习C的经历看完你一定会有收获。||| |||《Linux专栏》记录我学习Linux的经历看完你一定会有收获。||| |||《C#专栏》记录我复习C#的经历深度理解查漏补缺不定期更新。||| |||《计算机网络专栏》记录我学习计算机网络看完你一定会有收获。||| 计算机网络应用层一 应用层要解决的问题如何解决这些问题IP地址及端口初识应用层协议socket初识(初次理解)TCP/UDP要提供的服务 TCP/UDP初识 应用层要解决的问题
在之前的计网博客中我们以及学习到了网络和基于ISOTCP/IP的网络层状结构其中我们了解到了应用层要解决的问题是两台主机之间进程与进程之间的通讯问题。
如何解决这些问题
首先要解决进程之间的通讯问题我们首先需要知道我们要与那个主机进行通讯。其次就要解决我们要与该主机的那个进程进行通讯。在次我们还要解决双方通讯所要遵守的规则及协议。
IP地址及端口初识
要解决第一个问题我们可以借助IP地址和端口我们知道IP地址表识了某个网络这样我们就可以定位到接收方的网络位置而进程则需要端口号来确认一个主机上有多个进程端口号是一个数字来标识唯一的进程这样我们就能定位到网络同时定位到精确的进程了。 定位到网络并不能找到某一台主机还需要MAC地址而这部分不属于应用层的管辖属于数据链路层。 http的默认端口号为80号。
应用层协议
所谓的协议是层与层之间传递信息的一个规则的集合协议中包含了很多东西入语法语义时序等应用层的主要协议有http,https协议https协议是httpssl协议TCP/UDP是明码发送的所以https协议就是解决如何在TCP/UDP为上层提供的服务中保证安全性。 下图是http报文格式。
socket初识(初次理解)
在我们传输数据的时候我们要确认一些东西比如我是谁我的那个进程要发送信息接收方是谁接收方的那个进程要接收该信息。 再比如我需要运输层为应用层提供可靠传输还是非可靠传输TCP/UDP。 以及基于什么协议进行传输。 我们发现如果每次发送消息/接收消息我们都确认并发送一边 “我是谁我的那个进程要发送信息接收方是谁接收方的那个进程要接收该信息。”这样的信息首先会导致效率降低并且对空间的利用也不够好socket解决的这个问题。 socket是被操作系统维护的一个表格在需要可靠传输时TCP这个表格中包含了本地IP地址本地端口号接收方IP地址 接收方端口号。这四个信息在发送的时候将这4个信息集合到一个整形中并为四元组发送出去接收方同时也维护一个表格来接收该四元组信息。对于非可靠传输UDPsocket维护的是一个二元组表格该表格内存有本地IP地址本地端口号。 通过socket我们不用在发送多条信息只需发送四元组/二元组就能确定所有信息同时对于TCP来说只需要确定不同的接收方的端口号就可以直接发送数据这样就节约了时间对于接收方也是如此UDP只需要确定接收方的IP和端口号这样就将很多重复工作的时间节约了下来。
TCP/UDP要提供的服务
我们知道在计算机体系结构中下层要为上层提供服务TCP/UDP协议要为应用层提供基于运输层的可靠与否的服务。 TCP可靠传输基于TCP/IP协议。 UDP非可靠传输。 它们互有优劣选择什么服务需要由应用层的进程决定。 但是这两个协议都是明码传输的这在某些情况下是十分危险的要解决这个问题需要应用层的协议sslssl是一个库它可以为数据提供安全的传输解决TCP/UDP无法安全传输的问题。
TCP/UDP初识
简单认识以下TCP/UDP协议。 TCP是运输层提供可靠传输的协议为了实现可靠传输基于TCP的运输层会做以下工作 1.TCP协议会检测当前信道的吞吐量如果过高则TCP协议会减少发送的数据保证数据的精确度。2.在传输时会保留副本如果分组丢失了则重发。 还有很多保证可靠传输的方法这次简单认识下 UDP是运输层提供非可靠传输的协议由于是非可靠传输所以对以上的要求都不高入分组丢失不会重发也不会保存分组不会检测吞吐量运输层数据接收速度与发送速度几乎相等等等。 这两种传输友好有坏TCP提供可靠传输用时间换取了数据的准确度UDP则不会这样做。 比如流媒体网络游戏等需要UDP提供服务电子邮件等则需要TCP提供服务。