我的计算机网络专栏,是自己在计算机网络学习过程中的学习笔记与心得,在参考相关教材,网络搜素的前提下,结合自己过去一段时间笔记整理,而推出的该专栏,整体架构是根据计算机网络自顶向下方法而整理的,包括各大高校教学都是以此顺序进行的。
面向群体:在学计网的在校大学生,工作后想要提升的各位伙伴,
计算机网络应用层协议是在网络中实现不同应用程序之间通信和数据传输的规则和约定。它们定义了数据的格式、传输方式、错误检测和纠正等内容,以确保不同应用程序之间的互操作性和数据传输的可靠性。
应用层协议的原理是为了确保不同应用程序之间能够正确地进行数据交换和通信,并且能够保证数据传输的可靠性和正确性。通过规定数据的格式、传输方式、错误检测和纠正等内容,应用层协议能够实现不同应用程序之间的互操作性和数据传输的可靠性。
网络应用程序的组织结构和设计模式,用于实现特定功能或提供特定服务。
不同进程之间进行数据交换和信息传递的过程。在多进程系统中,不同的进程可能需要相互协作、共享数据或者进行通信,因此进程通信是非常重要的。
a. 管道(Pipe):管道是一种最基本的进程通信机制,它可以在父子进程或者兄弟进程之间进行通信。管道是一种单向通信机制,分为无名管道和有名管道两种。无名管道只能用于具有亲缘关系的进程之间通信,而有名管道可以用于无亲缘关系的进程之间通信。
b.消息队列(Message Queue):消息队列是一种进程间通信的方式,允许一个进程向一个队列中发送消息,而另一个进程从队列中接收消息。消息队列可以实现多对多的通信,不同进程之间的关系比较灵活。
c.共享内存(Shared Memory):共享内存是一种高效的进程通信方式,它允许多个进程共享同一块内存区域。通过共享内存,多个进程可以直接访问共享的数据,而不需要进行数据的复制和传输。不过需要注意的是,共享内存需要进行同步和互斥操作,以避免数据的冲突和不一致性。
d.信号量(Semaphore):信号量是一种用于进程同步和互斥的机制,它可以用于解决进程之间的竞争和资源的分配问题。通过信号量,可以实现进程之间的互斥和同步,确保多个进程能够有序地访问共享资源。
5.套接字(Socket):套接字是一种网络编程接口,它允许不同主机上的进程进行通信。套接字可以用于实现进程间的网络通信,包括TCP和UDP等协议。
因特网提供的运输服务主要是指TCP(传输控制协议)和UDP(用户数据报协议)这两种主要的传输层协议。这两种协议提供了不同的运输服务,适用于不同的应用场景。
可靠性:TCP提供可靠的数据传输服务,通过序号、确认和重传机制来确保数据的可靠性传输。
有序性:TCP保证数据的有序传输,确保数据在接收端按照发送端的顺序进行重组。
流量控制:TCP使用滑动窗口机制来进行流量控制,确保发送方和接收方之间的数据传输速率适
应对方的处理能力。
拥塞控制:TCP通过拥塞窗口和拥塞避免算法来进行拥塞控制,避免网络拥塞导致的性能下降。
TCP适用于对可靠性要求较高的应用场景,例如文件传输、电子邮件、Web浏览等。
无连接:UDP是一种无连接的传输协议,不需要建立连接就可以进行数据传输。
不可靠性:UDP不提供数据的可靠传输,数据可能丢失、重复或者无序到达。
低延迟:UDP的无连接特性和简单的数据传输机制使得它具有较低的传输延迟。
UDP适用于对实时性要求较高、对可靠性要求较低的应用场景,例如音视频流媒体、在线游戏等。
除了TCP和UDP之外,因特网还提供了其他一些运输服务,例如SCTP(流控制传输协议)、DCCP(数据报拥塞控制协议)等,这些协议提供了不同的运输服务特性,可以根据具体的应用需求来选择合适的传输协议。