网络编程相关基础知识点

518 阅读5分钟

这是我参与8月更文挑战的第24天,活动详情查看: 8月更文挑战

网络编程其实很简单,就是计算机之间通过网络协议进行互相通信,也就是我们常说的套接字(Socket)编码。 未命名文件.png

网络编程三要素

IP地址

IP地址是分配给网络中每台机器的数字标识符,确定了设备在网络中的具体位置。IP地址分为ipv4和ipv6

  • ipv4
    • ipv4的地址位数为2的32次方,ipv4地址,为4段,地址表现形式为:
-- 二进制
01100011.10000000.00100010.00001001

-- 十进制
10.128.34.9
  • ipv6
    • ipv6的地址空间比ipv4的地址空间比较大,地址位数为2的128次方,是ipv4的4倍
    • ipv6的地址格式与ipv4的不同,ipv6二进制为128位长度,以16位一组,每组用冒号分隔,可以分为8组,每组以4位十六进制方式表示,比如:
0e80:000d:1df4:2fg1:0029:9012:0000:8ae3
  •  ipv6也可以类似于点分十进制,ipv5也可以用的点十六进制写法,将8组4位十六进制地址的冒号去除,然后每位以点号分隔,例如上面冒号分隔的写法可以改为下面的写法:
0.e.8.0.0.0.0.d.1.d.f.4:2.f.g.1.0.0.2.9.9.0.1.2.0.0.0.0.8.a.e.3
  • ipv6的特殊写法:
    • 没想数字前的0可以省略,省略后如果仍是0则可以继续省略前面的0,例如上面的例子可以这样写:
0e80:000d:1df4:2fg1:0029:9012:0000:8ae3

--等价写法
e80:d:1df4:2fg1:29:9012::8ae3
  - 上面的等价写法中0000直接被省略写成::,但是这种等价只能出现一次,下面这种写法就不行
0e80:000d:1df4:2fg1:0029:0000:0000:8ae3

不可以这样等价:
0e80:000d:1df4:2fg1:0029::8ae3

端口号

网络中通过IP找到了哪台计算机,想要找到计算机中运行的具体哪个应用,就需要通过端口号来查找,比较一台计算机运行的应用不只是一个。 计算机的端口取值为:065535,其中01023为系统级别的端口,一般我们自定义端口都使用1024以上的端口号,防止端口冲突。

网络协议

网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。【百度百科】,通俗点就是计算机之间交互约定的一种协议,比如http协议,smtp协议,ftp等各种想协议。

网络分层模式

七层及四层模式

设计到网络编程我们都会常说七层网络模型以及四层网络协议,哪么每一层都干了什么事呢?

OSI七层网络模型TCP/IP四层网络模型各层网络协议设备
应用层应用层HTTP,FTP,NFS,WAIS,TELNET,SMTP,DNS等网关
表示层
会话层
传输层传输层TCP、UDP四层交换机
网络层网络层IP,ICMP,ARP,RARP,AKP,UUCP路由器、三层交换机
数据链路层数据链路层FDDI,Ethernet,Arpanet,PDN,SLIP,PPP网桥,集线器,中继器,光纤,双绞线
物理层IEEE

OSI七层网络模式只是理论上的分层方式,在实际中用的TCP/IP四层网路模型

各种协议

IP协议:网络互连协议

将多个包在网络中联系起来,传输数据包(不可靠传输),最基本功能就是寻址和分段功能,不 提供端到端,路由到路由的确认,不提供重发和流量控制。是计算机网络能够互相通信的基本规则,出错则像ICMP报告,ICMP在IP模块中实现

ICMP协议:面向无连接协议

用户传输错误报告控制信息(控制信息是指网络不通畅,主机是否到达,路由是否可用的这些网 络本身的消息,不涉及用户传输的数据)

ARP协议:地址解析协议

根据IP地址获取物理地址的协议(即MAC地址)。在同一子网内通过ARP协议可以实现数据包的 互相传递。不在一个子网内则无法获得MAC地址,只有通过网关去处理

RAPP协议:反转地址协议

将主机的物理地址转换成IP地址

BOOTP协议:引导程序协议

用于无盘工作站的局域网中,可以无盘工作站从一个中心服务器上获得IP地址。传输层:提供两台主机间端到端的通信

TCP协议:传输控制协议

主要用于网间传输的协议,分割处理报文并把结果包传到IP层,并接受处理IP曾传到的数据包

UDP协议:用户数据协议

主要用于需要在计算器之间传输数据的应用,将网络数据流量压缩成数据包

NET协议:网络地址转换协议

实现内网IP地址和公司地址之间的相互转换。将大量的内网IP转换成一个或者少量的公网IP

FTP协议:文件传输协议

通过FTP协议在FTP客户端访问FTP服务端,默认使用20和21端口,20用于传输数据,21用于传 输控制信息

HTTP协议:超文本协议

是用于从WWW服务端传输超文本到本地浏览器的传输协议。是客户端浏览器或其他程序与WEB 服务器之间的应用层通信协议

TELNET协议

Internet远程登录服务的标准协议和主要方式,为用户提供了在本地计算机上完成远程主机工 作的能力

SMTP协议:邮件传输协议

控制邮件传输的规则,以及邮件的中转方式

DNS协议:域名转换成IP地址

定义域名规则,将域名和IP相互映射