网络编程随手笔记

网络编程

1.局域网和广域网

1.1局域网 (LAN)

局域网的缩写是LAN,local area network,顾名思义,是个本地的网络,只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上,可以互相通信。局域网,就像是小区里的道路,分支多,连接了很多栋楼。

1.2广域网 (WAN)

广域网(Wide Area Network)是相对局域网来讲的,局域网的传输距离比较近,只能是一个小范围的。如果需要长距离的传输,比如某大型企业,总部在北京,分公司在长沙,局域网是无法架设的。广域网,就像是大马路,分支可能少,但类型多,像国道、省道、高速、小道等,连接了很多大的局域网。

1.2.1光猫

光猫是一种类似于基带modem(数字调制解调器)的设备,和基带modem不同的是接入的是光纤专线,是光信号。用于广域网中光电信号的转换和接口协议的转换,接入路由器,是广域网接入。

1.2.2交换机和路由器

交换机(二层):用于局域网内网的数据转
路由器(三层):用于连接局域网和外网

IP地址

基本概念

●IP地址是Internet中主机的标识
●Internet中的主机要与别的机器通信必须具有一个IP地址
●IP地址为32位(IPv4)或者128位(IPv6)
●表示形式:常用点分十进制形式,如202.38.64.10,最后都会转换为一个32位的无符号整数。
五类:A B C D E

IP的划分

A类:7位网络号(网络号第一位,必须是0)+24位主机号
B类:14位网络号(网络号前两位,必须是10)+16位主机位
C类:21位网络号(网络号前三位,必须是110)+8位主机号
D类:1110+24位多播组号
E类:11110+27位(留有待于)

IP的范围

A类:1.0.0.1~126.255.255.254
B类:128.0.0.1~~191.255.255.254
C类:192.0.0.1~~223.255.255.254   
D类(组播地址):224.0.0.1~~239.255.255.254j
E类:保留待用   11110

特殊地址

0.0.0.0:在服务器中,0.0.0.0指的是本机上的所有IPV4地址,如果一个主机有两个IP地址,192.168.1.1 和 10.1.2.1,并且该主机上的一个服务监听的地址是0.0.0.0,那么通过两个ip地址都能够访问该服务。
127.0.0.1:回环地址/环路地址,所有发往该类地址的数据包都应该被loop back。

NAT

地址转换的基本原理是在转发网络包时对 IP 头部中的 IP 地址和端口号进行改写
在这里插入图片描述

DCHP服务器(动态主机配置协议

● 功能:DHCP服务器的主要任务是自动分配IP地址、子网掩码、默认网关和DNS服务器ip等网络配置给网络中的设备(客户端),简化网络管理。
● 工作原理:
● 当一个设备(如电脑或手机)首次连接到网络时,它会发送一个DHCP请求。
● DHCP服务器接收到请求后,从预设的IP地址池中分配一个可用的IP地址,并返回给 客户端。
● 作用对象:DHCP服务器专注于局域网内部的IP地址管理。

NAT设备(网络地址转换)

● 功能:NAT设备的主要功能是将内部私有IP地址转换为公共IP地址,或反向操作,以便在局域网和外部网络(如互联网)之间进行通信。
● 工作原理:
● 当局域网内的设备访问互联网时,NAT设备记录设备的内部IP地址和源端口,并用公共IP地址替换。
● 响应的流量也会经过NAT设备,NAT通过记录的映射关系将数据包发送回正确的内部设备。
● 作用对象:NAT设备用于管理与外部网络(如互联网)的通信,通常作为路由器的一部分。

总结

● 职责不同:DHCP服务器主要负责IP地址的分配,而NAT设备负责地址转换和流量转发。
● 使用场景不同:DHCP通常在局域网内部使用,NAT则主要用于连接局域网与外部网络。

子网掩码

子网掩码的格式

与IP地址一样长的32位整数,有一连串的1,后面跟着一连串的0组成

作用

ip & 子网掩码 = 网络地址
ip & (~子网掩码)= 主机id

TCP和UDP

共同点:都是在传输层工作
TCP:是一种面向连接的传输层协议,它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)
适用情况
1、适合于对传输质量要求较高,以及传输大量数据的通信。
2、在需要可靠数据传输的场合,通常使用TCP协议。
3、MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议。
缺点:发送量大,效率低。
UDP:是一种不可靠的无连接传输层协议,在数据发送前,因为不需要进行连接,所以可以进行高效率的数据传输。
适用情况
1、发送小尺寸数据(如对DNS服务器进行IP地址查询时)。
2、在接收到数据,给出应答较困难的网络中使用UDP。
3、适合于广播/组播式通信中。
4、MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议。
5、流媒体、VOD、VoIP、IPTV等网络多媒体服务中通常采用UDP方式进行实时数据传输。

TCP编程

在这里插入图片描述

函数接口与步骤

服务器
1、socket:建立套接字
2、bind:绑定自身IP和端口
3、listen:监听,变为被动状态
4、accept:形成阻塞,等待客户端请求连接
客户端
1、socket:建立套接字
2、bind:绑定自身IP和端口
3、connect:向服务器发出链接请求

recv:读取数据
send:发送数据

  • 30
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值