网络编程基础一

為{幸葍}努か 提交于 2019-12-05 00:39:44

一、架构

两种常见的架构:C/S架构(客户机/服务器)和B/S架构(浏览器/服务器,也属于C/S架构的一种)。

  C/S架构优点:

  • 能充分发挥客户机的性能
  • 由于只有一层交互,因此响应速度较快,安全性高

  C/S架构缺点:

  • 用户群固定,需要下载客户端才能使用
  • 维护成本高

  B/S架构优点:

  • 客户端无需安装,有浏览器就行,跨平台
  • B/S架构可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强
  • 统一了应用的接口

  B/S架构缺点:

  • 跨浏览器问题
  • 在速度和安全性上需要花费巨大的设计成本

 

二、通信

网络编程基本上都是基于请求/响应方式的,即一个设备发送请求数据给另外一个,然后接收另一个设备的反馈。

  MAC地址:物理地址,由网卡决定的,是固定且唯一的。在OSI模型中第二层数据链路层负责。

  IP地址:四位点分十进制,在计算机内部存储时只需要4个字节即可。在OSI模型中第三层网络层负责。标识了计算机在网络中的位置。可以使用IP或域名来标识网络上的一台设备

  域名:由于IP地址不方便记忆,给IP取一个字符的名字,IP和域名之间存在一定的对应关系。在网络中只能使用IP地址进行数据传输,所以在传输以前,需要把域名转换为IP,这个由DNS的服务器完成。

  端口:规定一个设备有216个,即65536个端口,每个端口对应一个唯一的程序。每个网络程序,无论是客户端还是服务器端,都对应一个或多个特定的端口号。由于0-1024之间多被操作系统占用,所以实际编程时一般采用1024以后的端口号。使用端口号,可以找到一台设备上唯一的一个程序

如果需要和某台计算机建立连接的话,只需要知道IP地址或域名即可,但是如果想和该台计算机上的某个程序交换数据的话,还必须知道该程序使用的端口号。

  环回地址:网络ID为127的IP地址,用于一台主机的客户端与服务器端通过TCP/IP进行通信或者本机进程间通信,127.0.0.1。

  交换机:是一种在通信系统中完成信息交换功能的设备。

  • 交换机的通信方式:广播、单播、组播
  • 交换机的传输模式:全双工,半双工,全双工/半双工自适应

  利用交换机的通信:源主机发送一个请求帧给交换机,其中包含自身ip地址、mac地址,目标ip地址;交换机广播这条消息给其他所有的主机;目标主机接收到消息后,比对ip,回复给交换机信息,其中包含自身ip地址、mac地址,目标ip地址、mac地址;交换机以单播形式返回给源主机。

  路由器:连接不同网段。路由则是通过互联的网络把信息从源地址传输到目的地址的活动。路由发生在OSI网络参考模型中的第三层即网络层。

  网关:一个网络连接到另一个网络的“关口”。要实现这两个网络之间的通信,则必须通过网关。类似于一个局域网的出口和入口。

  网段:一个局域网内的ip地址范围。

  子网掩码:指明一个ip地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码和ip地址进行与运算&得到网段。

  arp协议 :  通过目标ip地址获取目标mac地址的一个协议。

  OSI模型:

应用层(应用层、表示层、会话层) http协议、https协议、ftp协议  
传输层 tcp协议、udp协议 四层交换机、四层路由器
网络层 ip协议 路由器、三层交换机
数据链路层 arp协议 网卡、网桥、以太网交换机
物理层   集线器、网线、光纤

 

   socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口。在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后面,对于用户来说,一组简单的接口就是全部,让Socket去组织数据,以符合指定的协议。网络通讯其实就是Sokcet间的通讯,数据在两个Sokcet间通过IO传输。
  socket(套接字)有两个种族,分别是基于文件类型(AF_UNIX)和基于网络类型(AF_INET)
  TCP是可靠的、面向连接的协议、传输效率低全双工通信(发送&接收)、面向字节流。使用TCP的应用:Web浏览器、电子邮件、文件传输程序。
  UDP是不可靠的、无连接的服务,传输效率高(发送前时延小),一对一、一对多、多对一、多对多、面向报文,尽最大努力服务,无拥塞控制。使用UDP的应用:域名系统(DNS)、视频流、IP语音。

 


 

 

 

 

 

 

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!