网站建设百度经验,大学生做网站的流程,百度官方认证,一级ip的二级ip网络#xff1a; 1.协议#xff1a;通信双方约定的一套标准 2.国际网络通信协议标准#xff1a; 1.OSI协议#xff1a; 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 …
网络 1.协议通信双方约定的一套标准 2.国际网络通信协议标准 1.OSI协议 应用层 发送的数据内容 表示层 数据是否加密 会话层 是否建立会话连接 传输层 数据传输的方式 网络层 数据的路由 数据链路层 局域网内部通信 物理层 物理介质的连接 2.TCP/IP协议模型 应用层 发送的数据内容 传输层 数据传输的方式 网络层 数据由一台主机到达另一台主机 网络接口层 物理介质连接 应用层 FTP 文件传输协议 TFTP 简单文件传输协议 HTTP 超文本传输协议 HTTPS 安全超文本传输协议 SMTP 简单邮件传输协议 TELNET 网络终端登录协议 DNS 域名系统 .. 传输层 TCP 传输控制协议 UDP 用户数据报协议 UDP不安全、不可靠的传输方式 UDP机制简单 UDP占用的资源开销比较小 TCP安全、可靠的传输方式 TCP机制复杂 TCP占用的资源开销比较大 三次握手建立连接(客户端与服务器端),确认双方能够通信 通信过程中保障数据传输的完整性 四次挥手断开连接,确保数据传输的完整 网络层 IPV4协议 IP地址 管理员IP地址形式192.168.0.167 内存IP地址形式 11000000.10101000.00000000.10100111 IP地址 网络位 主机位 网络位IP地址所属的网段局域网的编号 主机位局域网中的第几台主机 网段号网络位不变主机位全为0 广播号网络位不变, 主机位全为1 子网掩码每个IP地址都会搭配一个子网掩码,用来区分IP地址的网络位及主机位子网掩码展开成二进制,1对应的部分就是IP地址的网络位,0对应的部分就是IP地址的主机位 192.168.0.167 255.255.255.0 11000000.10101000.00000000.10100111 11111111.11111111.11111111.00000000 192.168.0.0 192.168.0.255 IP地址的划分 公有地址 私有地址 A类1.0.0.0 ~ 126.255.255.255 子网掩码255.0.0.0 管理超大规模型网络 私有IP 10.0.0.0——10.255.255.255 B类128.0.0.0 ~ 191.255.255.255 子网掩码255.255.0.0 管理大中规模型网络 私有地址172.16.0.0 - 172.31.255.255 C类192.0.0.0 ~ 223.255.255.255 子网掩码255.255.255.0 管理中小规模型网络 私有地址192.168.0.0 ~ 192.168.255.255 D类224.0.0.0 ~ 239.255.255.255 用于组播255.255.255.0 E类240.0.0.0 ~ 255.255.255.255 用于实验和研究255.255.255.0 MAC地址设备自带网卡的地址该地址是唯一的 端口号找到同一台主机不同的应用程序
网络接口层通信方式:
网络接口层的主要功能包括
1.将网络层的数据包封装成帧准备发送到物理层。 2.通过物理媒介发送和接收数据帧。 3.实现数据链路层协议如以太网协议等。 4.处理对传输介质的访问控制。 5.以及实现网络接口的配置和管理如使用ifconfig命令查看和配置IP地址 3.命令 1.ifconfig 2.将虚拟机IP地址设置为桥接模式 1.点击虚拟机 2.点击设置 3.选择网络适配器 4.点击桥接模式 5.点击确定 3.将虚拟机桥接到无线网卡上去 1.点击编辑 2.点击虚拟网络编辑器 3.点击更改设置 4.已桥接至选择无线网卡 5.点击确定 4.修改网卡配置文件 1.sudo vim /etc/network/interfaces 2.修改文件内容为 auto lo iface lo inet loopback auto ens33 iface ens33 inet dhcp 3.保存退出 :wq 4.重启网络服务 sudo /etc/init.d/networking restart 5.测试与局域网内其余IP地址是否能够连通 ping 192.168.0.167 ping www.baidu.com
4.UDP编程 1.套接字 实现Linux系统下的网络通信 套接字一次通信对象的抽象 2.socket int socket(int domain, int type, int protocol); 功能 创建套接字 参数 domain: AF_INET 表示IPV4协议 type:套接字类型 SOCK_STREAM流式套接字 SOCK_DGRAM:数据报套接字 SOCK_RAW原始套接字 protocol: TCP和UDP协议0 返回值 成功返回用来通信的文件描述符 失败返回-1 3.sendto ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struct sockaddr *dest_addr, socklen_t addrlen); 功能: 发送信息 参数: sockfd:套接字文件描述符 buf:发送数据空间首地址 len:发送数据长度 flags:发送属性 默认为0 dest_addr:目标地址存放空间首地址 addrlen:目的地址的长度 返回值: 成功返回发送字节数 失败返回-1 struct sockaddr_in { sa_family_t sin_family; /* address family: AF_INET */ in_port_t sin_port; /* port in network byte order */ struct in_addr sin_addr; /* internet address */ }; /* Internet address. */ struct in_addr { uint32_t s_addr; /* address in network byte order */ }; 如果sendto对应的套接字没有绑定端口则sendto绑定一个随机端口完成发送功能 4.inet_addr in_addr_t inet_addr(const char *cp); 功能 将字符串的IP地址转换为32位的地址类型 5.htons uint16_t htons(uint16_t hostshort); 功能 将本地字节序(小端)转换成网络大端字节序 6.bind int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen); 功能 将套接字与IP地址和端口进行绑定 参数: addr:绑定地址结构体空间首地址 addrlen:绑定地址空间大小 返回值 成功返回0 失败返回-1 注意 只能绑定自己的IP地址 发送端流程1.创建套接字 2.发送信息 3.关闭套接字 接收端流程 1.创建套接字 2.绑定IP和Port 3.接收信息 4.关闭套接字 7.recvfrom ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen); 功能 接收信息 参数 sockfd套接字文件描述符 buf接收数据空间首地址 len接收数据长度 flags接收的属性 默认为0 src_addr存放发送方地址空间的地址 addrlen: 要接收的发送方地址的长度 返回值 成功返回实际接收字节数 失败返回-1 NAT NAT是一种网络技术用于将私有IP地址转换为公共IP地址以便在互联网上进行通信。在NAT网络中内部网络中的设备使用私有IP地址这些地址通常是从RFC 1918中定义的地址块中分配的以避免与公共IP地址冲突。NAT转换器NAT router是一种网络设备它包含NAT功能可以接收来自内部网络的数据包并将其源IP地址和端口号转换为公共IP地址和端口号。这样内部网络中的设备就可以通过NAT转换器与互联网上的其他设备进行通信。当外部网络中的设备尝试与内部网络中的设备通信时NAT转换器会记录下原始的源IP地址和端口号以便在返回的数据包中进行相应的转换。这种机制可以保护内部网络免受来自互联网的直接访问提高网络安全性
作业 1.自己实现发送端从终端接收一个字符串发送给接收端 自己实现接收端从网络中接收到一个字符串并打印
2.编写两个程序,一个发送端,一个接收端,实现一个文件跨主机的传输