第二十二篇(网络编程)

网络编程

1. 理解网络的相关概念

网络的概念

计算机网络:多个计算机之间通过专业的设备进行连接,形成一个网络。每一台计算都是一个网络节点,可以相互进行信息的传递等。

网络的分类

按地理位置分类:

  1. 个域网(PAN):个人局域网就是在个人工作地方把属于个人使用的电子设备(如便携电脑等)用无线技术连接起来的网络,因此也常称为无线个人局域网WPAN,其范围大约在10m左右。

在这里插入图片描述
2. 局域网(LAN):一般限定在较小的区域内,小于10km的范围,通常采用有线的方式连接起来。

在这里插入图片描述
3. 城域网(MAN):规模局限在一座城市的范围内,10~100km的区域。
在这里插入图片描述

  1. 广域网(WAN):网络跨越国界、洲界,甚至全球范围。

局域网和广域网是网络的热点。局域网是组成其他两种类型网络的基础,城域网一般都加入了广域网。广域网的典型代表是internet网。
在这里插入图片描述

按传输介质划分:

  1. 有线网:采用同轴电缆和双绞线来连接的计算机网络。
  2. 光纤网:光纤网也是有线网的一种,但由于其特殊性而单独列出,光纤网采用光导纤维作传输介质。
  3. 无线网:用电磁波作为载体来传输数据,无线网联网费用较高,还不太普及。但由于联网方式灵活方便,是一种很有前途的连网方式。

局域网常采用单一的传输介质,而城域网和广域网采用多种传输介质。

网络通信-IP

在网络中,每台计算机都需要遵守IP协议产生一个唯一的上网标识。

IP(Internet Protocol):

IPV4:由4个8位二进制组成。10001101.10001101.10001101.10001101

不方便记忆,转换为十进制表示,范围为:0 ~ 255。 192.168.3.124

IPV6:基本上可以满足全世界的地址需求

查看本机的IP地址:ipconfig

测试网络联通:ping 要连接的IP地址

域名:www.baidu.com www.jd.com

DNS (Domain Name System) 域名系统

它会在系统内准备一份域名和对应机器IP的映射表。

访问一个域名时:

  1. 查找浏览器内是否有缓存映射
  2. 查找本机的hosts文件
  3. 前往网络服务商提供的域名系统

特殊的IP:127.0.0.1 == localhost 本机的回环地址 可以表示本机

网络通信-端口

每个程序运行时都会占用一个端口,它是唯一的。 端口范围:0-65535

我们如果想通过某个程序在网络内进行信息交流,必须要知道对方的IP和程序端口号。

IP:端口号

例如:127.0.0.1:8080

61.135.169.125:80(HTTP协议默认端口是80)

2. 使用Socket实现网络应用程序

在这里插入图片描述

应用程序的架构

B/S(Browser浏览器<客户端>/Server服务器)

基于浏览器为客户端的网络应用程序。

典型:网站、小程序…

优点:

  1. 无需下载安装,只要有浏览器就可以访问。【可以留住很多用户】
  2. 服务器更新,用户几乎无感知。刷新浏览器就可以得到最新的内容。
  3. 因为只需要有浏览器,所以在平台层面的兼容性可以忽略了。

缺点:

  1. 因为所有的资源都在服务器上,所以在传输信息过程中受到带宽影响比较大。
  2. 在画面渲染和安全验证方面,受限严重。
  3. 因为资源请求是同步请求,所以用户体验很差。【由谷歌地图带起AJAX风之后,有所改善】

C/S(Client客户端/Server服务器)

基于自身定制的客户端的网络应用。

典型:QQ 微信 APP 端/手游

优点:

  1. 因为大多数普通资源都放在了客户端(胖客户端),所以在传输信息只需要加载一些重要信息即可,受到带宽影响较小。
  2. 在画面渲染和安全验证方面,比较强,实现也比较容易。
  3. 因为信息加载只需要加载必要信息,所以体验较好。

缺点:

  1. 必须安装客户端才能使用。
  2. 如果服务器更新,必须要重新下载客户端。(省流/补丁更新)
  3. 不同的平台必须适配不同的版本。
Socket介绍

插座,通信链路点

传输协议

网络模型中传输层的协议。TCP UDP

TCP:传输控制协议

三次握手  面向连接的传输协议  适用于传输重要的 对安全要求比较高的信息。 下载文件、聊天、传输资料

为了维护连接可靠,效率较低

TCP协议:三次握手过程

在这里插入图片描述

  1. 第一次握手:主机A发送位码为syn=1,随机产生seq number=1234567的数据包到服务器,主机B由SYN=1知道,A要求建立联机。
  2. 第二次握手:主机B收到请求后要确认联机信息,向A发送ack number=(主机A的seq+1),syn=1,ack=1,随机产生seq=7654321的包。
  3. 第三次握手:主机A收到后检查ack number是否正确,即第一次发送的seq number+1,以及位码ack是否为1,若正确,主机A会再发送ack number=(主机B的seq+1),ack=1,主机B收到后确认seq值与ack=1则连接建立成功。

完成三次握手,主机A与主机B开始传送数据。

UDP:用户数据报协议

UDP是一个简单的面向数据报的传输层协议

UDP提供无连接、不可靠的服务:它把应用程序传给IP层的数据发送出去,但是并不保证它们能到达目的地。

面向无连接的传输协议  适用于传输一些不太重要的信息。 视频聊天、看视频

效率较高
基于TCP

ServerSocket

Socket

基于UDP

DatagramPacket

DatagramSocket

TCP与UDP的区别:
  1. TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接。
  2. TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
  3. TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的。
    UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等)。
  4. 每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信。
  5. TCP首部开销20字节;UDP的首部开销小,只有8个字节。
  6. TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值