网络基础
一、命令
1.ifconfig
1.ifconfig //linux下查看IP地址,windows下是ipconfig查看ip地址
英文意思:configure a network interface 配置网络接口
使用之后弹出下列信息
eth0 Link encap:以太网 硬件地址 00:0c:29:7b:5d:9d
inet 地址:192.168.154.128 广播:192.168.154.255 掩码:255.255.255.0
inet6 地址: fe80::8482:7c77:6f45:29a5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 跃点数:1
接收数据包:50 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:98 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1000
接收字节:12736 (12.7 KB) 发送字节:11220 (11.2 KB)
lo Link encap:本地环回
inet 地址:127.0.0.1 掩码:255.0.0.0
inet6 地址: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 跃点数:1
接收数据包:272 错误:0 丢弃:0 过载:0 帧数:0
发送数据包:272 错误:0 丢弃:0 过载:0 载波:0
碰撞:0 发送队列长度:1
接收字节:21183 (21.1 KB) 发送字节:21183 (21.1 KB)
eth0:表示第一块网卡,硬件地址-HWaddr:就是这块网卡的物理地址
inet addr :表示网卡的IP地址 inet是一个IPV4的地址
inet6是一个IPV6的地址
lo:表示主机的回环地址 这个一般是用来测试一个网络程序,但又不想让局域网或外网的用户能够查看,只能在此台主机上运行和查看所用的网络接口。比如把 httpd服务器的指定到回环地址,在浏览器输入127.0.0.1就能看到你所架WEB网站了,但只是本机能看得到,局域网的其它主机或用户无从知道
第一行:连接类型:Ethernet(以太网)HWaddr(硬件mac地址)
第二行:网卡的IP地址、子网、掩码
第三行:UP(代表网卡开启状态)RUNNING(代表网卡的网线被接上)MULTICAST(支持组播)MTU:1500(最大传输单元):1500字节
第四、五行:接收、发送数据包情况统计
第七行:接收、发送数据字节数统计信息
2.ping
ping [选项] IP地址(域名)
//用来测试两台主机能不能连通
选项:
-b:用于对整个网段进行探测。IP需要为广播地址
-c 次数:设置完成要求回应的次数
-s 字节数:设置数据包的大小
nslookup 域名
//能够查询互联网域名服务器的信息
二、linux网络编程
以服务器为例,在一个服务器中实现高效性的处理数据和安全性,分为以下三个部分:
1.数据接收
2.数据处理
3.数据存储
1.数据接收
i/o通信模块,解决如何首数据,如何发数据
1.阻塞接收
2.非阻塞接收
3.异步接收
4.i/o复用模型
2.数据处理
数据进入服务器之后,最重要的就是对数据的运算和处理
1.多进程处理
2.多线程处理
3.线程池处理
3.数据存储
大部分服务器在数据进来之后,就把数据处理了,其中一分就把数据发送出去了,另一份就发到数据库存储起来
1.mysql
2.连接池
三、网络基础
1.常见的网络架构
1.七层网络架构
从上往下:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。
基于功能和协议去区分的这七层
应用层:TFTP协议,HTTP协议。.....
传输层:TCP协议,UDP协议
网络层:IP协议
数据链路层:传输数据,或者数据流,数据帧
2.五层网络架构
从上往下:应用层,网络层,数据链路层,物理层
表示层和会话层没有通讯协议,有时会把这两层合并到应用层中,所以会有五层网络架构
2.常用的通讯协议
tcp/ip协议簇:包含很多协议,udp也是其中一个
tcp和udp是一种通讯方式:tcp理解为打电话,udp理解为发短信
ip网络之间互连的协议
IP地址三类 :a类,b类,c类
c类子网掩码:255.255.255.0(常用的IP地址)
b类子网掩码:255.255.0.0
a类子网掩码:255.0.0.0
IP地址和子网掩码可以将网络地址和主机地址分开:
比如:网卡的IP地址是:192.168.86.132,子网掩码是c类 255.255.255.0
将这个IP地址和子网掩码进行按位与操作
192.168.86.132 & 255.255.255.0 -》192.168.132.0 这个就是网络地址,而0.0.0.132就是主机地址
作用:
两台计算机要进行通讯,首先判断他们是否在同一广播域下
如果二者的网络地址相同,说明在同一网络中,这时就可以把数据包发给目标主机
如果网络地址不相同,就需要路由网关将数据报转发给目标主机
3.socket套接字
1.定义
源IP地址和目的IP地址以及源端口号和目的端口号的组合称为套接字
2.使用
网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket,建立网络通信连接至少要一对端口号(socket)
套接字通常认为,用于描述IP地址和端口号,是一个通信链的句柄,可以用来实现不同虚拟机或者不同计算机之间的通信
就是相当于是对一个API的调用,加上头文件,就可以使用相应的函数
3.端口号
一个应用程序可以使用多个端口号,而在某一个时刻一个端口号只能一个应用程序使用
4.句柄概念
句柄相当于给你一个void* 的空类型指针,可以接收其他任何类型的指针,有了这个指针或者说是句柄你就可以对数据进行操作了。
四、tcp特点
1.三次握手——建立稳定连接
客户端向服务器发送SYN(请求连接),服务器收到后回应SYN(请求连接),ACK(确认收到),最后客户端收到消息后回应ACK(确认收到)
1.客户端向服务器发送消息
2.服务器把客户端发送的报文重新发回到客服端,再发送确认报文
3.客户端再向服务器发送确认报文
2.四次挥手
客户端向服务器发送FIN(结束消息),服务器收到回应ACK(收到消息),再关闭对客户端的连接,最后发送FIN(结束消息),客户端收到之后回应ACK(确认收到)
1.客户端向服务器发送结束报文
2.服务器收到结束报文,再给客户端发回确认报文
3.服务器关闭客户端的连接
4.客户端发回确认报文