【网络基础】基本协议

一、协议

1.概念
计算机与计算机之间通过网络实现通信时事先达成的一种约定。两台计算机只要遵循相同的协议就能够实现通信。网络也属于进程间通信,公共资源是网络,其本质是两个进程通过网络进行收发数据。
2.多任务调度
操作系统采用CPU时间片轮转机制,在多个程序间进行切换,合理调度,从而相当于使多个程序同时运行。
3.OSI模型
ISO制定了一个国际标准OSI。共分为了7层,使得复杂的网络协议变得更加简单化。

  • 应用层:针对特定应用的协议
  • 表示层
  • 会话层
  • 传输层:管理两个节点之间的传输,负责可靠传输。
  • 网络层:地址管理与路由选择,经过哪个路由传递到目标地址?
  • 数据链路层:互连设备之间传送和识别数据帧
  • 物理层:线路传输

4.地址
1)在同一个通信网络中,通信主体地址具有唯一性、层次性(中国陕西),但MAC地址不具有层次性。IP地址具有层次性。
2)MAC地址:由设备的制造厂商针对每块网卡进行分别指定。MAC地址一般会烧入到ROM中。是数据链路的地址,识别同一链路中不同的计算机。
5.半双工
只发送或只接收的通信方式。
6.全双工
同一时间既可以发数据也可以接收数据,例如打电话。
7.VPN
虚拟专用网络,用于连接距离较远的地域。就可以浏览外网了。翻墙(梯子)。
8.SOCKET
使用TCP或UDP进行通信时,会使用到套接字(SOCKET)的API(应用编程接口)。
SOCKET=IP+端口号。
9.端口号
1)用来识别同一台计算机中进行通信的不同应用程序。
2)网络任务进程才有端口号。
3)是传输层协议的内容。
4)一个端口号只能被一个进程占用。
5)一个进程可以被多个端口号绑定,一个端口号不能被多个进程绑定。收数据时不知道给哪个进程发送。
6)识别一个通信:“源IP地址”、“目标IP地址”、“协议号”、“源端口号”、“目的端口号”。
可以使用netstat -n -t进行参看。
7)端口号分为知名端口号(0~1023)和操作系统动态分配的端口号。我们自己写程序时,应该避开这些知名端口号。

ftp:21
ssh:22
http:80
https:443
cat /etc/services   //可以查看知名端口号

8.netstat
查看网络状态的工具。

n:拒绝显示名字,能显示数字的全部转换为数字
l:仅列出有在监听的服务状态
p:显示建立相关链接的程序名
t:仅显示tcp相关选项
u:仅显示udp相关选项

9.查看服务器的进程ID
pidof 进程名

二、网络设备

1.网卡
使计算机联网的设备,一台计算机想连接网络,必须有网卡(网络接口卡、网络适配器)。网卡有时会被集成到计算机的主板中,或者也可以单独插入扩展槽使用。
2.中继器
物理层上的延长网络的设备,对减弱的信号进行放大和发送的设备。
3.路由器
是连接网络和网络的设备。可以将分组报文发送给另一个目标路由器地址。工作在网络层。连接两个以太网。
4.交换机
可以将局域网的网络碰撞减少。工作在数据链路层。用于互连相同类型的局域网。

三、TCP/IP模型

1.ARPANET
是全球互联网的鼻祖。
2.TCP/IP于1975年诞生。
TCP/IP是利用IP进行通信时所必须用到的协议群的统称。
3.RFC(征求意见表)
4.数据包
段:TCP数据流中的信息。
数据报:IP和UDP中的单位
帧:数据链路层中包的单位。
5.应用层
SSH、HTTP、SMTP、POP、FTP、HTML、DNS(基于UDP协议)、TFTP(基于UDP的简单文件传输协议)。
6.传输层
UDP、TCP、
7.网络层
ARP、IPv4、IPv6、
8.数据链路层
PPP

四、UDP

1.特点
无连接、不可靠、面向数据报的一种协议。UDP没有真正意义的发送缓冲区。UDP具有接收缓冲区,但这个缓冲区不保证数据报的顺序,当接收缓冲区满了,在到达的数据报就会被丢弃。
2.UDP首部
**这里写图片描述**
3.UDP使用注意事项
UDP协议首部中,有16的最大长度,也就是UDP能传输的最大长度是64K(2的16次方),但我们可以在应用层手动的分包,多次发送,并在接收端手动拼装。
UDP可以随时发送数据。

五、TCP(传输控制协议)

1.特点
面向连接、面向字节流、可靠的数据段、属于全双工。其作用是对数据的传输进行一个详细的控制。TCP通过检验和、序列号、确认应答、重发控制、连接管理以及窗口控制等机制实现可靠性传输。
2.TCP首部
这里写图片描述
序列号
是指发送数据的位置。
■ 确认序号
指下一次应该收到的数据的序列号。说明已收到确认序号之前一位为止的数据。当发送端收到这个确认序号时,就可以确认这个序号以前的数据都被正常接收。
4位首部长度
也叫数据偏移,表示TCP所传输的数据部分应该从TCP包的哪个位开始计算,相当于表示该TCP头部有多少个32位bit(单位为4个字节)。
①所以TCP头部最大长度=(8+4+2+1)*4=60个字节。
②如果TCP首部长20字节,那么4位首部长度可以设置为5,意味着TCP的首部是最一开始到20个字节处,余下为TCP数据。
保留
以后扩展时用。
6位控制位
URG:紧急指针是否有效。
ACK:确认序号是否有效。
PSH:使接收端应用程序立刻从TCP缓冲区中读走。
RST:连接出现异常必须强制断开连接,对方请求重新建立连接。携带此标识称为复位报文段。
SYN:请求建立连接,携带此标识称为同步报文段。
FIN:以后不再有数据发送,希望断开连接。
窗口大小
相当于接收方的缓冲区大小。
TCP不允许发送超过此窗口大小的数据。
如果窗口为0,则表示可以发送窗口探测,了解最新窗口大小。但这个数据必须是一个字节。
校验和
TCP的校验和无法关闭。
紧急指针
只有在URG控制位为1时有效。该字段数值表示本报文段紧急数据的指针。
选项
其长度是可变的,最大长度为40个字节。该字段用于提高TCP的传输性能。
16位窗口大小一次往返时间最大只能发送64K,但使用了该选项,就可以提升至1个G。

六、IP

七、HTTP

猜你喜欢

转载自blog.csdn.net/guorong520/article/details/80329106
今日推荐