网络编程一些相关概念

看到一篇文章并摘录下自己需要的内容,同时扩充了一些;

参考链接:https://blog.csdn.net/weixin_45004203/article/details/125281668

网络分层模型

TCP/IP 四层模型(目前主流的网络协议族)

包括:数据链路层、网络层、传输层和应用层

应用层: TCP/IP 四层网络模型的第一层,为应用进程提供服务。

  • 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,例如,邮件传输应用使用了 SMTP 协议、万维网应用使用了 HTTP 协议、远程登录服务应用使用了有 TELNET 协议。
  • 应用层还能加密、解密、格式化数据。

传输层:传输层为应用层实体提供端到端的通信功能,保证了数据包的顺序传送及数据的完整性

网络层:主要解决主机到主机的通信问题。

链路层:也叫网络接口层,可以为网络层提供一条准确无误的线路。

TCP/IP 四层模型包含了 TCP、IP、UDP、Telnet、FTP、SMTP 等上百个互为关联的协议,其中 TCP 和 IP 是最常用的两种底层协议,所以把它们统称为“TCP/IP 协议族”。

标准协议
常见的标准协议大致介绍如下:

应用层常见的协议有 HTTP 协议,FTP 协议。

HTTP 超文本传输协议是互联网上应用最为广泛的一种网络协议。
FTP文件传输协议(File Transfer Protocol)
NFS:网络文件系统
传输层常见协议有 TCP 和 UDP 协议。

TCP 传输控制协议是一种面向连接的、可靠的、基于字节流的传输层通信协议。
UDP 用户数据报协议是 OSI 七层模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。
网络层常见协议有 IP 协议、ICMP 协议、IGMP 协议。

IP 协议是因特网互联协议。
ICMP 协议是 Internet 控制报文协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。(Linux 中 ping 命令传输的数据包的格式就是使用了 ICMP 协议)
IGMP 协议是 Internet 组管理的协议,是因特网协议家族中的一个组播协议。该协议运行在主机和组播路由器之间。
网络接口层常见协议有 ARP 协议、RARP 协议。

ARP 协议是正向地址解析协议,通过已知的 IP,寻找对应主机的 MAC 地址。

RARP 是反向地址转换协议,通过 MAC 地址确定 IP 地址。

网络如何寻址并通信?

网络世界中IP地址是非常宝贵的资源,换句话来说,IP每台电脑拥有一个IP地址是不现实的,实际上,往往是一个局域网才会有一个IP地址,也就是说IP 地址只能定位到一个局域网,无法定位到具体的一台计算机。

IP地址在一定的区域是唯一的;IP地址分为了公网地址和私网地址。

公网地址就是互联网(Internet)上面的地址,全球唯一。私网地址只要在私网内唯一就可以了。

真正能唯一标识一台计算机的是 MAC (Media Access Control Address)地址,其被直译为媒体存取控制位址,也称为局域网地址、 以太网地址、物理地址或硬件地址。计算机出厂时,MAC 地址已经被写死到网卡里面了。

IP和MAC两者之间分工明确,默契合作,完成通信过程。在数据通信时,IP地址专注于网络层,网络层设备(如路由器)根据IP地址,将数据包从一个网络传递转发到另外一个网络上;而MAC地址专注于数据链路层,数据链路层设备(如交换机)根据MAC地址,将一个数据帧从一个节点传送到相同链路的另一个节点上。IP和MAC地址这种映射关系由ARP(Address Resolution Protocol,地址解析协议)协议完成,ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络。

有了 IP 地址和 MAC 地址,虽然可以找到目标计算机,但仍然不能进行通信。因为一台计算机可以同时提供多种网络服务,例如 Web 服务(网站)、FTP 服务(文件传输服务)、SMTP 服务(邮箱服务)等,仅有 IP 地址和 MAC 地址,计算机虽然可以正确接收到数据包,但是却不知道要将数据包交给哪个网络程序来处理,所以通信还是会失败。

为了区分不同的网络程序,计算机会为每个网络程序分配一个独一无二的端口,端口(Port Number)是一个虚拟的、逻辑上的概念。可以把 IP 地址比作一间房子的地址,端口就是出入这间房子的门,数据通过这道门流入流出,每道门有不同的编号,这些编号就是端口号。

端口是通过端口号来标记的,端口号只有整数,端口号一般占 2 个字节,可以表示 0-65535 个端口(即:2^16,一共 65536 个端口)。端口类型如下:

周知端口(Well Known Ports) :周知端口是众所周知的端口号,也叫知名端口、公认端口或者常用端口,范围从 0 到 1023,它们紧密绑定于一些特定的服务。例如 80 端口分配给 Web 服务,21 端口分配给 FTP 服务,23 端口分配给Telnet服务,SMTP 服务的端口号是 25等等。

我们在 IE 的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下 Web 服务的端口是 “80”。但网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在地址栏上指定端口号,方法是在地址后面加上冒号“:”(半角),再加上端口号。比如使用 “8080” 作为 Web 服务的端口,则需要在地址栏里输入“网址:8080”。但是有些系统协议使用固定的端口号,它是不能被改变的,比如 139 端口专门用于 NetBIOS 与 TCP/IP 之间的通信,不能手动改变。

**注册端口(**Registered Ports) :端口号从 1024 到 49151,它们松散地绑定于一些服务,分配给用户进程或应用程序,这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以用用户端动态选用为源端口。

动态端口 / 私有端口(Dynamic Ports / Private Ports) :动态端口的范围是从 49152 到 65535。之所以称为动态端口,是因为它一般不固定分配某种服务,而是动态分配。

网络应用设计模式

C/S 模式(客户机(client)/服务器(server)模式)

需要在通讯两端各自部署客户机和服务器来完成数据通信。
服务器部分是多个用户共享的信息与功能,执行后台服务,如控制共享数据库的操作等;客户机部分为用户所专有,负责执行前台功能,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。

优势:

  • 很多工作可以在客户端处理后再提交给服务器,所以 C/S 结构的客户端响应速度快;
  • 可以充分满足客户自身的个性化要求;
  • 管理信息系统具有较强的事务处理能力,能实现复杂的业务流程;
  • 客户端位于目标主机上可以保证性能,将数据缓存至客户端本地,从而提高数据传输效率。
  • 安全性较高,C/S 一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强,一般高度机密的信息系统采用 C/S 结构适宜。
  • 一般来说客户端和服务器程序由一个开发团队创作,所以他们之间所采用的协议相对灵活。可以在标准协议的基础上根据需求裁剪及定制。

劣势:

  • 涉及到安装的工作量,即客户端需要安装专用的客户端软件;
  • 需要将客户端安插至用户主机上,对用户主机的安全性构成威胁。这也是很多用户不愿使用C/S模式应用程序的重要原因;
  • 任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高;
  • 最后,由于客户端和服务器都需要有一个开发团队来完成开发。工作量将成倍提升,开发周期较长。

B/S 模式(浏览器(browser)/服务器(server)模式)

浏览器通过 Web Server 同数据库进行数据交互。

优点:

  • 由于它没有独立的客户端,工作开发量较小,只需开发服务器端即可。
  • 移植性非常好,不受平台限制。
  • 系统的扩展非常容易,只要有一台能上网的电脑就能使用。

缺点:

  • 服动态刷新页面,响应速度明显降低;
  • 无法实现具有个性化的功能要求;
  • 网络应用支持受限,通信开销大、系统和数据的安全性较难保障;
  • 缓存数据不尽如人意,从而传输数据量受到限制,应用的观感大打折扣。
  • 必须与浏览器一样,采用标准 http/https 协议进行通信,应用层协议选择不灵活。

网络覆盖范围简述

局域网(local area network)简称 LAN,一种覆盖一座或几座大楼、一个校园或者一个厂区等;

特点:

  • 使用专门铺设的传输介质进行联网,数据传输速率高(10Mb/s~10Gb/s)
  • 通信延迟时间短,可靠性较高
  • 局域网可以支持多种传输介质

城域网也叫都会网域(Metropolitan Area Network)简称 MAN,指大型的计算机网络,MAN 改进LAN(局域网)中的传输介质,扩大局域网的范围。

  • 需要的成本较高,但可以提供更快的传输速率。
  • 地理分布范较大,一般为数十公里至数百公理。可覆盖一座城市,一个大都会区。
  • 属宽带局域网,它的传输媒介主要采用光缆,传输速率在 100 兆比特/秒以上。
  • MAN 的一个重要用途是用作骨干网( 它与中国的骨干网相连 ),通过它将位于同一城市内不同地点的主机、数据库,以及LAN等互相联接起来
  • 城域网中所有城市网络设备,光缆建设等工作,都是由中国的三大运营商(ISP)来建设的:电信、移动、联通。

广域网(wide area network)简称 WAN,一种用来实现不同地区的局域网或城域网的互连,可提供不同地区、城市和国家之间的计算机通信的远程计算机网。

广域网的通信子网主要使用分组交换技术。

分组是由一块用户数据和必要的地址和管理信息组成,保证网络能够将数据传递到目标。

分组通过最佳路径(取决于 路由算法)路由到目标。但并不是所有在相同两个主机之间传送的分组(即使是来自同一消息的那些分组)一定要沿着相同的路径传送。

一个数据连接通常传送数据的分组流,它们将不必全部以相同的方式路由过物理网络。目的计算机把收到的所有报文按照适当的顺序重新排列,就能合并恢复出原来的内容。

国际互联网络,即为因特网(Internet),是目前世界上最大的计算机互联网络,它是由那些使用公用语言互相通信的计算机连接而成的全球网络。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值