网络通信基础。如何学习网络编程三要素,与TCP/IP通信协议

举报
魔天伦 发表于 2023/04/28 16:06:19 2023/04/28
【摘要】 ​ 一、网络编程 1、什么是网络编程?网络编程可以让程序与网络上的其他设备中的程序进行数据交互。 2、网络通信基本模式常见的通信模式有如下2种形式:Client-Server(CS) 、 Browser/Server(BS) 二、网络通信的三要素 1、IP地址设备在网络中的地址,是唯一的标识。IP(Internet Protocol):全称”互联网协议地址”,是分配给上网设备的唯一标志。 常...

一、网络编程

1、什么是网络编程?

网络编程可以让程序与网络上的其他设备中的程序进行数据交互。
image.png

2、网络通信基本模式

常见的通信模式有如下2种形式:Client-Server(CS) 、 Browser/Server(BS)

image.png
image.png

二、网络通信的三要素

1、IP地址

设备在网络中的地址,是唯一的标识。

IP(Internet Protocol):全称”互联网协议地址”,是分配给上网设备的唯一标志。 常见的IP分类为:IPv4和IPv6

IPv4:

image.png

IPv6:

128位(16个字节),号称可以为地球每一粒沙子编号。
 IPv6分成8个整数,每个整数用四个十六进制位表示, 数之间用冒号(:)分开。

image.png

IP地址基本寻路
IP地址形式:
公网地址、和私有地址(局域网使用)。

192.168. 开头的就是常见的局域网地址,范围即为192.168.0.0–192.168.255.255,专门为组织机构内部使用。

IP常用命令
ipconfig:查看本机IP地址

ping IP地址:检查网络是否连通

特殊地址IP:
本机IP: 127.0.0.1或者localhost:称为回送地址也可称本地回环地址,只会寻找当前所在本机。

IP地址操作类-InetAddress
此类表示Internet协议(IP)地址。

InetAddress  API如下

InetAddress API
名称 说明
public static InetAddress getLocalHost() 返回本主机的地址对象
public static InetAddress getByName​(String host) 得到指定主机的IP地址对象,参数是域名或者IP地址
public String getHostName​() 获取此IP地址的主机名
public String getHostAddress​() 返回IP地址字符串
public boolean isReachable(int timeout) 在指定毫秒内连通该IP地址对应的主机,连通返回true

2、端口
应用程序在设备中唯一的标识。

定义:
端口号:标识正在计算机设备上运行的进程(程序),被规定为一个 16 位的二进制,范围是 0~65535。

端口类型

周知端口:0~1023,被预先定义的知名应用占用(如:HTTP占用 80,FTP占用21)

注册端口:1024~49151,分配给用户进程或某些应用程序。(如:Tomcat占 用8080,MySQL占用3306)

动态端口:49152到65535,之所以称为动态端口,是因为它 一般不固定分配某种进程,而是动态分配。

注意:我们自己开发的程序选择注册端口,且一个设备中不能出现两个程序的端口号一样,否则出错。

3、协议
数据在网络中传输的规则,常见的协议有UDP协议和TCP协议。

连接和通信数据的规则被称为网络通信协议

TCP/IP协议是互联网中最重要的两个协议。

TCP:Transmission Control Protocol,传输控制协议

IP:Internet Protocol,网际协议。IP协议定义了在路由器和端系统之间发送和接受的分组格式。

计算机网络体系结构的形成:(背景)
1974 年,美国的 IBM 公司宣布了系统网络体系结构SNA (System Network Architecture)。这个著名的网络标准就是按照分层的方法制定的。

不久后,其他一些公司也相继推出自己公司的具有不同名称的体系结构。

由于网络体系结构的不同,不同公司的设备很难互相连通。

为了使不同体系结构的计算机网络都能互连,国际标准化组织 ISO 于 1977 年成立了专门机构研究该问题。

他们提出了一个试图使各种计算机在世界范围内互连成网的标准框架,即著名的开放系统互连基本参考模型 OSI/RM (Open Systems Interconnection Reference Model),简称为 OSI。

开放系统互连参考模型 OSI/RM(失败)
OSI 只获得了一些理论研究的成果,在市场化方面却失败了。

原因包括:

OSI 的专家们在完成 OSI 标准时没有商业驱动力;
OSI 的协议实现起来过分复杂,且运行效率很低;
OSI 标准的制定周期太长,因而使得按 OSI 标准生产的设备无法及时进入市场;
OSI 的层次划分也不太合理,有些功能在多个层次中重复出现。 
网络通信协议有两套参考模型;
OSI参考模型:世界互联协议标准,全球通信规范,由于此模型过于理想化,未能在因特网上进行广泛推广。

TCP/IP参考模型(或TCP/IP协议):事实上的(de facto) 国际标准。

OSI参考模型

TCP/IP参考模型

各层对应

面向操作

应用层

应用层

HTTP、FTP、DNS、SMTP…

应用程序需要关注的:浏览器,邮箱。程序员一般在这一层开发

表示层

会话层

传输层

传输层

TCP、UDP…

选择使用的TCP , UDP协议

网络层

网络层

IP、ICMP…

封装源和目标IP,进行路径选择

数据链路层

数据链路层+物理

物理寻址、比特流…

物理设备中传输

物理层

image.png

# 传输层的两种常见协议:
TCP(Transmission Control Protocol) :传输控制协议

UDP(User Datagram Protocol):用户数据报协议

TCP协议特点

使用TCP协议,必须双方先建立连接,它是一种面向连接的可靠通信协议。
传输前,采用“三次握手”方式建立连接,所以是可靠的 。
 在连接中可进行大数据量的传输 。
 连接、发送数据都需要确认,且传输完毕后,还需释放已建立的连接,通信效率较低。

TCP协议通信场景

对信息安全要求较高的场景,例如:文件下载、金融等数据通信。
好啦,这次就到这里啦,剩下的分到下次的文章了哦~,喜欢的小伙伴记得点赞关注我哦~

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。