02、处于不同局域网下的Socket通信(网络部分理论知识)

目录

一、服务器

1、服务器的种类和功能

2、服务器的操作系统

3、IIs、Apache、Tomcat

4、云服务器

弹性云服务器(Elastic Cloud Server,ECS)

云服务器安全组

二、OSI七层模型与TCP/IP五层模型

三、外网、内网、公网、私网

内网穿透

网络地址转换

映射端口

四、TCP协议和UDP协议

传输控制协议(TCP)

用户数据报协议(UDP)

协议差别

五、FRP

frp 的作用

六、ssh


 

一、服务器

服务器是在网络上为不同用户提供和不同内容的信息、资料和文件的计算机。

1、服务器的种类和功能

(1)WWW服务器(Web服务器/HTTP服务器)

WWW服务器为用户提供网页浏览、论坛访问等服务,用户从该服务器中获得资料和网页。

(2)FTP服务器

FTP服务器是专门为用户提供各种文件的服务器,FTP服务器上往往存储大量的文件,比如电影、程序、软件、音乐等。用户只需要使用客户端软件登录到FTP服务器上就可以从FTP服务器上下载所需要的文件和资源到自己的电脑上.当然你也可以把自己的资源通过FTP上传,实现资源的共享。

(3)Mail服务器

为用户提供电子邮件的接受存储和发送服务。

(4)网络服务器:数据库服务器(Database Server)

数据库服务器由运行在局域网中得一台或者多台计算机和数据库管理系统软件共同构成,为客户提供应用程序数据服务。数据库服务器是建立在数据系统的基础之上。

(5)网络服务器:代理服务器(Proxy Server)

代理服务器的功能是代理网络用户取得网络信息,是网络信息的中转站,是个人网络和Internet服务商之间的中间代理机构,负责转发合法的网络信息,对转发进行控制和登记。代理服务器大多数用来连接Internet(国际互联网)和intranet(局域网)。

代理:允许一个网络终端通过这个服务与另一个网络终端进行非直接的连接

(6)网络服务器:域名服务器DNS(Domain Name Server)

DNS可以为计算机、服务以及接入互联网或局域网的任何资源提供分层的域名解析功能。DNS提供了很多功能,其中最主要的功能就是进行域名与IP之间的解析。

2、服务器的操作系统

(1)Windows

美国微软公司开发,界面化处理,配置简单方便,但是成本高,安全系数低,承受的访问量也少

(2)Unix

应用最广泛的Unix系统是Linux,成本低,性能好,稳定性好,安全

3、IIs、Apache、Tomcat

  • IIS(Internet information Server)由微软公司开发,是Windows操作系统的一部分。IIS是允许在Internet上发布信息的Web服务器。IIS通过超文本传输协议(HTTP)传输信息。还可配置IIS以提供文件传输协议(FTP)服务。FTP服务允许用户从Web节点到Web节点传输文件。配置简单,界面友好,功能强大,同时提供对ASP/ASP.NET的支持,但是IIS的性能和安全性较差,且只能在Windows中运行
  • Apache是世界排名第一的WWW服务器,几乎可以运行在所有的计算机平台上,功能配置强大,支持通用网关接口(CGI),支持虚拟主机,支持HTTP认证,内部集成代理服务器,具有用户会话过程的跟踪能力,支持FASTCGI,支持JAVA SERVLETS。APACHE是一个web服务器环境程序 启用他可以作为web服务器使用 不过只支持静态网页。 但asp、php、cgi、jsp等动态网页的就不行.。
  • Tomcat主要的任务不是WEB服务,而是支持JSP语言环境。tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展。 

4、云服务器

云服务器一种简单高效、安全可靠、处理能力可弹性伸缩的计算服务。 其管理方式比物理服务器更简单高效。是基于虚拟技术构建的虚拟资源池,用户可以根据实际情况选择相应的资源配置。在使用资源上灵活性会相对高很多,成本也低。

弹性云服务器(Elastic Cloud Server,ECS)

由CPU、内存、操作系统、云硬盘组成的基础的计算组件。弹性云服务器创建成功后,您就可以像使用自己的本地PC或物理服务器一样,在云上使用弹性云服务器。弹性云服务器的开通是自助完成的,您只需要指定CPU、内存、操作系统、规格、登录鉴权方式即可,同时也可以根据您的需求随时调整弹性云服务器规格,为您打造可靠、安全、灵活、高效的计算环境。

云服务器安全组

和windows防火墙类似,安全组是一种虚拟防火墙,可以对进出云服务器的流量进行数据包过滤,是一种重要的网络安全隔离手段。安全组是一个逻辑上的分组,可以将同一地域内具有相同网络安全隔离需求的云服务器添加到同一个安全组,用户通过配置安全组规则,实现统一的网络访问控制。在安全组内,可以放行系统相应的端口号以及IP访问权限,如设置只能某些IP才可访问此台服务器,或禁用某些指定端口或FTP与ping功能。

二、OSI七层模型与TCP/IP五层模型

 OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTPSMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议。

  • 进程/应用程的协议

平时最广泛的协议,这一层的每个协议都由客程序和服务程序两部分组成。程序通过服务器与客户机交互来工作。常见协议有:Telnet、FTP、SMTP、HTTP、DNS等。

  • 主机—主机层协议
  1. TCP(Transmission Control Protocol:传输控制协议;面向连接,可靠传输
  2. UDP(User Datagram Protocol):用户数据报协议;面向无连接,不可靠传输
  • Internet层协议

负责数据的传输,在不同网络和系统间寻找路由,分段和重组数据报文,另外还有设备寻址。些层包括如下协议:

  1. IP(Internet Protocol):Internet协议,负责TCP/IP主机间提供数据报服务,进行数据封装并产生协议头,TCP与UDP协议的基础。
  2. ICMP(Internet Control Message Protocol):Internet控制报文协议。ICMP协议其实是IP协议的的附属协议,IP协议用它来与其它主机或路由器交换错误报文和其它的一些网络情况,在ICMP包中携带了控制信息和故障恢复信息。
  3. ARP(Address Resolution Protocol)协议:地址解析协议。
  4. RARP(Reverse Address Resolution Protocol):逆向地址解析协议。

三、外网、内网、公网、私网

公网-公共网络

私网-私有网络

内网-内部网络

外网-外部网络

  • 内网(局域网Local Area Network,LAN):是在一bai个局部的地理范围内(du如一个学校、工厂和机关内),一般是zhi方圆几千米以内,将各种计算机,外部设备和数据库等互相联接起来组成的计算机通信网。
  • 外网(广域网Wide Area Network,WAN):Internet,是连接不同地区局域网或城域网计算机通信的远程网。通常跨接很大的物理范围,所覆盖的范围从几十公里到几千公里,它能连接多个地区、城市和国家,或横跨几个洲并能提供远距离通信,形成国际性的远程网络。
  • 公网:公网是相对于内网而言的。内网上网的计算机得到的IP地址是Internet上的保留地址;而公网上网的计算机得到的IP地址是因特网的公用地址,是非保留的地址。公网的计算机和因特网上的其他计算机可随意互相访问。
  • 私网:企业或者家庭用户搭建的网络为私网,里面一般都是用私网ip,这些ip如果要访问公网网站的话,需要在私网和公网接口处,做SNAT。

内网穿透

内网穿透,即NAT(网络地址转换 Network Address Translation,NAT)穿透,网络连接时术语,计算机是局域网内时,外网与内网的计算机节点需要连接通信,有时就会出现不支持内网穿透。进行 NAT 穿透是为了使具有某一个特定源 IP 地址和源端口号的数据包不被 NAT 设备屏蔽而正确路由到内网主机。

网络地址转换

NAT技术是通过将专用的网络地址转换为公用地址,从而对外隐藏了内部管理的IP地址。这样,通过在内部使用非注册的IP地址,并将它们转换为一小部分外部注册的IP地址,从而减少了IP地址注册的费用以及节省了越来越缺乏的地址空间。同时,这也隐藏了内部网络结构,从而降低了内部网络受到攻击的风险。

NAT的功能就是在内部网络的私有地址需要与外部通信时,把内部私有地址转换成合法的全局IP地址。NAT可以在两个方向上隐藏地址,为了支持这种方案,NAT在两个方向上都要翻译原地址和目的地址。NAT的功能通常被集成到路由器、防火墙等设备中。

映射端口

其实就是常说的网络地址转换(Network Address Translation,NAT)地址转换的一种,其功能就是把在公网的地址转翻译成私有地址, 采用路由方式的ADSL宽带路由器拥有一个动态或固定的公网IP,ADSL直接接在HUB或交换机上,所有的电脑共享上网。

在局域网内部的任一PC或服务器上运行到内网穿透客户端,此时域名解析到的IP地址是局域网网关出口处的公网IP地址,再在网关处做端口映射指向监控设备即可。能让外网的电脑找到处于内网的电脑,提高下载速度。不管是内网穿透还是其他类型的网络穿透,都是网络穿透的统一方法来研究和解决。

四、TCP协议和UDP协议

TCP和UDP协议是TCP/IP协议的核心。TCP/IP协议集包括应用层,传输层,网络层,网络访问层。里面包括很多协议的。UDP和TCP只是传输层最重要的两种协议。

TCP 协议是一TCP (Transmission Control Protocol)UDP(User Datagram Protocol)协议属于传输层协议。

传输控制协议(TCP)

TCP(传输控制协议)定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施。协议规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重复这类差错进行恢复。协议还规定了两台计算机如何初始化一个TCP数据流传输以及如何结束这一传输。TCP最大的特点就是提供的是面向连接、可靠的字节流服务。

面向连接的TCP

“面向连接”就是在正式通信前必须要与对方建立起连接,是按照电话系统建模的。比如你给别人打电话,必须等线路接通了、对方拿起话筒才能相互通话。

  • 通道的建立——三次握手:
  1. 在建立通道时,客户端首先要向服务端发送一个SYN (synchronize)同步信号。
  2. 服务端在接收到这个信号之后会向客户端发出SYN同步信号和ACK(acknowledgement)确认信号。
  3. 当服务端的ACK和SYN到达客户端后,客户端与服务端之间的这个“通道”就会被建立起来。
  • 通道的关闭——四次挥手:
  1. 在数据传输完毕之后,客户端会向服务端发出一个FIN终止信号。
  2. 服务端在收到这个信号之后会向客户端发出一个ACK确认信号。
  3. 如果服务端此后也没有数据发给客户端时服务端会向客户端发送一个FIN终止信号。
  4. 客户端在收到这个信号之后会回复一个确认信号,在服务端接收到这个信号之后,服务端与客户端的通道也就关闭了。

用户数据报协议(UDP)

UDP(用户数据报协议)是一个简单的面向数据报的传输层协议。提供的是非面向连接的、不可靠的数据流传输。UDP不提供可靠性,也不提供报文到达确认、排序以及流量控制等功能。它只是把应用程序传给IP层数据报发送出去,但是并不能保证它们能到达目的地。因此报文可能会丢失、重复以及乱序等。但由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。

无连接的UDP协议

“无连接”就是在正式通信前不必与对方先建立连接,不管对方状态就直接发送。与手机短信非常相似:你在发短信的时候,只需要输入对方手机号就OK了。

UDP传输协议是一种不可靠的、面向无连接、可以实现多对一、一对多和一对一连接的通信协议。UDP在传输数据前既不需要建立通道,在数据传输完毕后也不需要将通道关闭。只要客户端给服务端发送一个请求,服务端就会一次性地把所有数据发送完毕。适用于一次只传送少量数据、对可靠性要求不高的应用环境。

协议差别

TCP主要应用于文件传输精确性相对要求较高且不是很紧急的情景,比如电子邮件、远程登录等。有时在这些应用场景下即使丢失一两个字节也会造成不可挽回的错误,所以这些场景中一般都使用TCP传输协议。由于UDP可以提高传输效率,所以UDP被广泛应用于数据量大且精确性要求不高的数据传输,比如我们平常在网站上观看视频或者听音乐的时候应用的基本上都是UDP传输协议。

五、FRP

FRP(Fast Reverse Proxy,快速反向代理) 是一个高性能的反向代理应用,可以帮助您轻松地进行内网穿透,对外网提供服务,支持 tcp, udp,http, https 等协议类型,并且 web 服务支持根据域名进行路由转发。

frp 的作用

  • 利用处于内网或防火墙后的机器,对外网环境提供 http 或 https 服务。

  • 对于 http 服务支持基于域名的虚拟主机,支持自定义域名绑定,使多个域名可以共用一个80端口。

  • 利用处于内网或防火墙后的机器,对外网环境提供 tcp 服务,例如在家里通过 ssh 访问处于公司内网环境内的主机。

  • 可查看通过代理的所有 http 请求和响应的详细信息。(待开发)

六、ssh

SSH(Secure Shell)是一种网络协议,用于计算机之间的加密登录。

如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。最早的时候,互联网通信都是明文通信(如:ftp、pop和telnet)一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。

SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。可以实现远程登录。

 

所有的内容均来自于互联网,作为笔记整理!

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 像素格子 设计师:CSDN官方博客 返回首页