一般购物网站有哪些模块,用dw做网站首页,青岛浩瀚网络技术有限公司,静态网站如何建设网络编程 day01 0. 网络编程课程介绍1. 认识网络1.网络发展史2.局域网与广域网局域网#xff08;LAN#xff09;广域网#xff08;Wan#xff09; 3.光猫4.路由器5.交换机与路由器6.网线 2. IP1. 基本概念2. 网络号/主机号#xff08;二级划分#xff09;3. IP地址分类整… 网络编程 day01 0. 网络编程课程介绍1. 认识网络1.网络发展史2.局域网与广域网局域网LAN广域网Wan 3.光猫4.路由器5.交换机与路由器6.网线 2. IP1. 基本概念2. 网络号/主机号二级划分3. IP地址分类整体分类特殊地址 4.子网掩码(MASK)5. 练习6. 三级划分 3. 网络模型网络的体系结构OSI模型TCP/IPOSI和TCP/IP的对应关系常见协议DNS网络调试命令pingnetstatifconfig手机调试工具 4. socket1. socket 发展2. socket 介绍3. 为什么需要socket4.socket类型5. 位置6. TCP/UDP 5. 端口号 port6. 字节序 0. 网络编程课程介绍
网络基础IP、子网掩码、端口号、网络基础模型OS、TCP/IP、传输协议socketTCP、UDP模型、广播、组播、协议分析、抓包工具的使用、IO多路复用、并发服务器SQL数据库TCP实现FTP、电子词典
1. 认识网络
1.网络发展史
ARPnetA 阿帕网 ---- Internet 因特网 ---- 移动互联网 ---- 物联网 TCP/IP 用来检测网络传输中差错的传输控制协议--------TCP 专门负责对不同网络进行互联的互联网协议-----IP 2.局域网与广域网
局域网LAN 局域网的缩写是LANlocal area network顾名思义是个本地的网络只能实现小范围短距离的网络通信。我们的家庭网络是典型的局域网。电脑、手机、电视、智能音箱、智能插座都连在路由器上可以互相通信。局域网就像是小区里的道路分支多连接了很多栋楼。
广域网Wan 广域网Wide Area Network是相对局域网来讲的局域网的传输距离比较近只能是一个小范围的。如果需要长距离的传输比如某大型企业总部在北京分公司在长沙局域网是无法架设的。广域网就像是大马路分支可能少但类型多像国道、省道、高速、小道等连接了很多大的局域网。
怎么上网 第一通过因特网只需要办一根宽带就实现了通信非常方便现在的宽带价格也比较便宜。 第二通过广域网专线。 所以为了数据安全不能连接因特网需要用一条自己的专用线路来传输数据这条线路上只有自己人不会有其他人接入且距离很远这个网络就叫 “广域网”。
3.光猫 光猫是一种类似于基带modem数字调制解调器的设备和基带modem不同的是接入的是光纤专线是光信号。用于广域网中光电信号的转换和接口协议的转换接入路由器是广域网接入。 猫的作用将光模拟信号转化为数字信号 早期电话线 现在光纤
4.路由器
路由器用于连接局域网和外网 路由器需要区分WAN口和LAN口WAN口是接外网的从Modem出来的或者从上一级路由器出来的LAN口是接内网的现在路由器都带无线功能本质上无线接入就是LAN
5.交换机与路由器
交换机工作原理 交换机用于局域网内网的数据转发 路由器用于连接局域网和外网也能进行数据转发 现在大部分路由器都有有交换机的功能 但是交换机没有IP分配和IP寻址的功能所以交换机没有路由器的功能。
6.网线
2. IP
1. 基本概念
IP地址是Internet中主机的标识Internet中的主机要与别的机器通信必须具有一个IP地址IP地址为32位IPv4 232或者128位IPv62128个 NAT公网转私网、私网转公网IPV4表示形式常用点分十进制形式如202.38.64.10最后都会转换为一个32位的无符号整数。 NAT设备网络地址转换 功能NAT设备的主要功能是将内部私有IP地址转换为公共IP地址或反向操作以便在局域网和外部网络如互联网之间进行通信。 工作原理 当局域网内的设备访问互联网时NAT设备记录设备的内部IP地址和源端口并用公共IP地址替换。 响应的流量也会经过NAT设备NAT通过记录的映射关系将数据包发送回正确的内部设备。 作用对象NAT设备用于管理与外部网络如互联网的通信通常作为路由器的一部分。 DHCP服务器动态主机配置协议 功能DHCP服务器的主要任务是自动分配IP地址、子网掩码、默认网关和DNS服务器ip等网络配置给网络中的设备客户端简化网络管理。 工作原理 当一个设备如电脑或手机首次连接到网络时它会发送一个DHCP请求。 DHCP服务器接收到请求后从预设的IP地址池中分配一个可用的IP地址并返回给客户端。 作用对象DHCP服务器专注于局域网内部的IP地址管理。 2. 网络号/主机号二级划分
IP地址 网络号主机号 网络号表示是否在同一个网段内局域网 主机号表示在网段内的ID同一网段内不重复
3. IP地址分类
整体分类 A类(0.0.0.0 - 127.255.255.255)默认子网掩码255.0.0.0 第一个字节为网络号后三个字节为主机号(一个字节占8位)。该类IP地址的最前面为“0”因为网络号是8位所以地址的网络号取值于 0~127之间(0000 0000)(0111 1111)。一般用于大型网络,主机号取值在0 - 2 ^24之间。 B类(128.0.0.0 - 191.255.255.255默认子网掩码255.255.0.0 前两个字节为网络号后两个字节为主机号。该类IP地址的最前面为“10”所以地址的网络号取值于128~191之间。一般用于中等规模网络。 C类(192.0.0.0 - 223.255.255.255)子网掩码255.255.255.0 前三个字节为网络号最后一个字节为主机号。该类IP地址的最前面为“110”所以地址的网络号取值于192~223之间。一般用于小型网络(一般教室使用的是C类)。 D类(224.0.0.0 - 239.255.255.255)多播地址。 该类IP地址的最前面为“1110”所以地址的范围取值于224~239之间。一般用于组播用户组播通信。 E类是保留地址。该类IP地址的最前面为“1111”所以地址的取值于240~247之间。一般是一些保密单位用得到平时基本不会用到
特殊地址
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。 网络地址 每一个网段主机号为0的地址; 如192.168.50.0。它是网络中的一个特殊地址不能被分配给任何具体的主机。 广播地址 主机号最大的地址是该网段的广播地址 如192.168.50.255。如 b类IP 广播地址为 130.223.255.255 全网广播地址 : 255.255.255.255 该地址不能随便用,会影响这个网络 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.254 4.子网掩码(MASK)
子网掩码是一个32位的整数作用是将某一个IP划分成网络地址和主机地址子网掩码长度是和IP地址长度完全一样网络号全为1主机号全为0公式网络地址 IP MASK 主机地址 IP ~MASK
5. 练习
练习一B类地址的子网掩码怎么写 答255.255.0.0 练习二B类地址同一网段最多可以连接多少个主机 答216 - 2 网络地址和广播地址.1一般是路由器登陆界面 练习三已知一个子网掩码号为255.255.255.192问最多可以连接多少台主机 答26 - 2 子网掩码网络号全为1主机号全为0192 1100 0000主机号只有6位主机数为26-2台 练习四一个IP地址为192.168.3.183计算其网络号与主机号 网络号192.168.3.0 主机号0.0.0.183 练习五 如果有800台电脑, 在不浪费ip情况下, 选用哪个网段? 答B类C类同一网段只有28个A类在同一网段会有224个主机
6. 三级划分
作用重新划分网络号和主机号, 也就是重新组网 , 从而提高资源利用率 二级划分 IP IP地址 网络号 主机号 三级划分 IP IP地址 网络号 子网号 主机号 练习一某公司有四个部门行政、研发1、研发2、营销每个部门各50台计算机接入公司局域网如果要在192.168.1.0网段为每个部门划分子网子网掩码应该怎么设置每个子网的地址范围分别是什么4个部门之间不能通信 答C类254台主机主机号0000 0000 行政0000 0000 - 0011 1111》 研发10100 0000 - 0111 1111》 研发21000 0000 - 1011 1111》 营销1100 0000 - 1111 1111》 子网掩码255.255.255.1100 0000 》255.255.255.192 练习二有两台电脑主机,在最少浪费IP地址的情况下.将172.16.14.4与172.16.13.2划归为同一网段,则子网掩码应该设置为 答255.255.252.0 解析
同一网段内主机号不同网络号相同从二级划分中主机号中划分出相同部分作为子网号子网号与网络号合称网络号 14.4172.16.0000 1110.0000 0100 13.2172.16.0000 1101.0000 0010 子网号172.16.0000 11 主机号10.0000 0100 和 01.0000 0010 子网掩码255.255.1111 1100.0000 0000》255.255.252.0
3. 网络模型
网络的体系结构 网络采用分而治之的方法设计将网络的功能划分为不同的模块以分层的形式有机组合在一起。 每层实现不同的功能其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务同时使用下层提供的服务 网络体系结构即指网络的层次结构和每层所使用协议的集合 两类非常重要的体系结构OSI与TCP/IP
OSI模型 TCP/IP 应用层应用协议和应用程序的集合 传输层决定数据交给机器的哪个任务进程去处理通过端口寻址 进程一定有进程号不一定有端口号端口号只有在进行网络通信才有 网络层提供设备到设备的传输可以理解为通过IP寻址机器。 网络接口和物理层屏蔽硬件差异驱动向上层提供统一的操作接口。
OSI和TCP/IP的对应关系 常见协议
网络接口和物理层: ppp拨号协议老式电话线上网方式 Ethernet是一种常见的局域网技术使用MAC地址进行帧的传输和接收 Wi-Fi用于无线局域网的数据传输通常基于IEEE 802.11标准 网络层: IP(IPV4/IPV6)网间互连的协议 ICMP网络控制管理协议ping命令使用 IGMP网络分组管理协议广播和组播使用 ARP地址解析协议 IP–MAC RARP反向地址转换协议 MAC–IP ARPRARP在网络接口和物理层工作 传输层 TCP传输控制协议 UDP用户数据报协议 应用层 SSH加密协议 telnet远程登录协议 FTP文件传输协议 HTTP超文本传输协议 DNS域名解析协议 将人类易于记忆的域名如www.baidu.com转换为计算机使用的IP地址如192.0.2.1 SMTP/POP3邮件传输协议
DNS 由于使用IP地址来指定计算机不方便人们记忆且输入时候容易出错用字符标识网络中计算机名称方法。 域名Domian Name 域名服务器Domain Name server用来处理IP地址和域名之间的转换。 域名系统Domain Name SystemDNS域名翻译成IP地址的软件DNS 域名结构 例如域名 www.baidu.com.cn 从右向左看 cn为高级域名也叫一级域名它通常分配给主干节点取值为国家名cn代表中国 com为网络名属于二级域名它通常表示组织或部门 中国互联网二级域名共40个edu表示教育部门com表示商业部门gov表示政府mil军队等等 baidu为机构名在此为三级域名表示百度 www万维网world wide web也叫环球信息网是一种特殊的信息结构框架。 工作流程
网络调试命令
ping
测试网络连通性ICMP 作为平时网络连通检测使用最多的命令它的作用主要为 ● 用来检测网络的连通情况和分析网络速度 ● 根据域名得到服务器IP ● 根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。 字节数据包大小 时间响应时间时间越小证明链接地址的速度越快 TTLtime to live从源到目的每经过一个路由器TTL减一。当TTL 0 时数据包丢失
netstat
netstat是控制台命令是一个监控TCP/IP网络的非常有用的工具它可以显示路由表、实际的网络连接以及每一个网络接口设备的状态信息。Netstat用于显示与IP、TCP、UDP相关的统计数据一般用于检验本机各端口的网络连接情况。 netstat -a //查看所有网络状态 netstat -at //查看tcp所有网络状态 netstat -au //查看udp所有网络状态 netstat -l //查看处于监听状态的链接 netstat -lt //查看处于监听状态的链接tcp netstat -lu //查看处于监听状态的链接udp netstat -lx //查看处于监听状态的链接unix ifconfig
查看网络接口信息 ens33网卡名称 enEthernet s表示热插拔槽上的设备 33插槽编号 lo回环网卡
格式含义ifconfig 具体网卡名称只显示具体网卡的详细信息无论是否启用ifconfig -a表示显示所有网卡包括没有启动的网卡ifconfig 网卡名称up/down 表示开启或关闭网卡ifconfig 网络接口 IP地址[/子网掩码长度]新建临时IP地址添加 一块虚拟网卡ifconfig -s查看通讯情况
手机调试工具
全能调试
4. socket
1. socket 发展
1982 - Berkeley Software Distributions 操作系统引入了socket作为本地进程之间通信的接口1986 - Berkeley 扩展了socket 接口使之支持UNIX 下的TCP/IP 通信现在很多应用 (FTP, Telnet) 都依赖这一接口
2. socket 介绍
是一个编程接口函数是一种特殊的文件描述符 (everything in Unix is a file)socket是一种通信机制并不仅限于TCP/IP协议面向连接 (Transmission Control Protocol - TCP/IP)无连接 (User Datagram Protocol -UDP 和 Inter-network Packet Exchange - IPX)
3. 为什么需要socket
普通的I/O操作过程 打开文件读/写操作关闭文件TCP/IP协议被集成到操作系统的内核中引入了新型的“I/O”操作 进行网络通信的两个进程在不同的机器上如何连接 网络协议具有多样性如何进行统一的操作 需要一种通用的网络编程接口Socket
4.socket类型
流式套接字(SOCK_STREAM) — TCP 提供了一个面向连接、可靠的数据传输服务数据无差错、无重复的发送且按发送顺序接收。 内设置流量控制避免数据流淹没慢的接收方。数据被看作是字节流。 数据报套接字(SOCK_DGRAM) -- UDP 提供无连接服务。 数据包以独立数据包的形式被发送不提供无差错保证数据可能丢失或重复顺序发送可能乱序接收。 原始套接字(SOCK_RAW) 可以对较低层次协议如IP、ICMP直接访问还有一些ping命令
5. 位置 6. TCP/UDP
相同点都存在于传输层全双工通信
TCP全双工通信、面向连接、可靠 TCP即传输控制协议是一种面向连接的传输层协议它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信)。 高可靠原因 1. 三次握手、四次挥手 2. 序列号和应答机制 3. 超时错误重传机制 4. 拥塞控制、流量控制(滑动窗口) 适用场景 适合于对传输质量要求较高的通信 在需要可靠数据传输的场合通常使用TCP协议 MSN/QQ等即时通讯软件的用户登录账户管理相关的功能通常采用TCP协议
UDP全双工通信、面向无连接、不可靠 UDPUser Datagram Protocol用户数据报协议是不可靠的无连接的协议。在数据发送前因为不需要进行连接所以可以进行高效率的数据传输。 适用场景 发送小尺寸数据如对DNS服务器进行IP地址查询时 适合于广播/组播式通信中。 MSN/QQ/Skype等即时通讯软件的点对点文本通讯以及音视频通讯通常采用UDP协议
5. 端口号 port 为了区分一台主机接收到的数据包应该转交给哪个进程来进行处理使用端口号来区分 TCP端口号与UDP端口号独立UDP port为8888TCP port也可为8888 端口号一般由IANA (Internet Assigned Numbers Authority) 管理 端口用两个字节来表示 众所周知端口被占用1 - 10231 - 255之间为众所周知端口256 - 1023端口通常由UNIX系统占用) 已登记端口1024 - 49151(可用来建立与其它主机的会话) 动态或私有端口49152 - 65535 固定某些服务使用 6. 字节序
字节序: 不同类型的cpu主机内存存储大于一个字节类型的数据在内存中的存放顺序。 小端序little-endian 低序字节存储在低地址 主机字节序 大端序big-endian 高序字节存储在低地址 网络字节序 网络中传输的数据必须使用网络字节序即大端字节序 终端显示的数据必须是主机字节序即小端字节序 网络传输中需要将每个主机的主机字节序CPU决定转换为网络中统一顺序的网络字节序才能供双方主机去识别。 只需要转换IP和port就可以,不需要转换传输的数据包的字节序因为IP和port为 4个字节和2个字节, 而数据报一般都为char类型, 占一个字节根据字节序的性质内存存储大于一个字节类型的数据在内存中的存放顺序所以char类型并不具有字节序的概念。 练习写一个程序判断当前主机的字节序
union en
{int in;char ch;
};
int main()
{int myend 0x12345678;// 指针char *endp (char *)myend;printf(%#x\n, *endp);// 数据类型char endch (char)myend;printf(%#x\n, endch);// 共用体union en endun;endun.in myend;endun.ch (char)endun.in;printf(%#x, endun.ch);
}int 类型的myend占满四个字节强转成char类型的数据时会按照主机的大小端类型存储。如果强转之后打印出来的是“78”说明低位字节存储在低地址位是小端存储如果强转之后打印出来的是“12”说明高位字节存储在低地址位是大端存储。