网络基础-1

三要素:

IP, 端口号,网络协议:

  • IP: 可以唯一标识一个网卡,即在网络中唯一标识一台计算机
  • 端口号:唯一标识一台计算机上的一个程序
  • 网络协议:不同的计算机通过网络协议屏蔽网络差异,并实现数据交换

IP地址

  1. IP 地址:(网络号)+主机号,一共32位
  • A类:("0"+7位)+24位
  • B类:("10"+14位)+16位
  • C类:("110"+21位)+8位
  • D类:("1110"+其他) :用做多点广播
  • E类:("1111"+其他):用于实验研究,不讨论它。
  • 一般用点分十进制表示一个32位二进制表示的IP地址
  • 主机号全为0的IP地址表示网络号,不标识计算机而是标识一个网络。主机号全为1表示广播(当前即IP地址代表着当前网络域的所有计算机)
  1. 私有IP(与公开IP相对):
  • 10.0.0.0~10.255.255.255
  • 172.16.0.0~172.31.255.255
  • 192.168.0.0~192.168.255.255
  • IP地址127.0.0.1~127.255.255.255用于回路测试
    如: 127.0.0.1可以代表本机IP地址,用http://127.0.0.1 就可以测试本机中配置的Web服务器
  1. 子网掩码:
  • 作用:把网络号和主机号分开,提取网络号
  • 特点:子网掩码和IP地址必须一起出现,彼此都离不开谁
  • 结构:“网络位”全为1,“主机位”全为0。因此,一个子网掩码与IP地址进行"按位与"操作(&),即可得到当前IP地址所在的网络号。
  • 例如, IP地址为“192.168.1.1”, 子网掩码为“255.255.255.0”。当前的网络号为192.168.1.0

端口:

  • 唯一标识一台计算机的某一个服务(或者说程序)
  • 端口号是一个[0,65535]范围内的整数
  • 分为熟知端口和动态端口
  • 熟知端口([0,1023])比如http服务一般默认占用80端口,ftp服务默认占用21端口,熟知端口一般有固定用途。
  • 动态端口是[1024,65535],写用户程序一般申请动态端口,系统随机分配一个动态端口的端口号
  • windows下 netstat -an 查看端口状态

网络协议

  1. TCP/IP协议族:(OSI7层协议我们只关心上面四层)
    image

  2. Socket:

  • 结构:(IP地址,端口号),唯一标识了一个服务
  • Socket编程本质上提供了一组使用TCP/IP协议族的API
  • 面向B/S模型,针对客户端和服务端各自提供了一组API。
  1. Socket(套接字)之间的连接可分为三个步骤:服务端监听,客户端请求,连接确认。

创建Socket:

  • import socket
    socket.socket(AddressFamily, Type)
  • 创建并返回了一个socket对象

参数说明:

  • Address Family:可以选择 AF_INET(用于Internet 进程间通信)或者AF_UNIX(用于同一台机器进程间通信) ,实际工作中常用AF_INET
  • Type:套接字类型,可以是 SOCK_STREAM(流式套接字,主要用于TCP 协议) 或者 SOCK_DGRAM(数据报套接字, 主要用于 UDP 协议)

image

  1. UDP与TCP的对比
  • UDP无连接不可靠,TCP有连接可靠
  • UDP速度快,TCP速度慢
  • UDP资源消耗小,TCP消耗更多资源
  • UDP使用比TCP简单
  1. UDP的适用场景:多点广播和实时通信(要求速度快)
  • 视频
  • QQ
  • TFTP(简单文件传送)
  • SNMP(简单网络管理协议)
  • RIP(路由信息协议,如报告股票市场,航空信息)
  • DNS(域名解释)
  1. TCP:面向连接,可靠,但速度慢,消耗资源多,操作比
    UDP复杂,TCP连接基于“三次握手”:

比如A和B要建立一个TCP连接,要发生:

  • A请求
  • B响应
  • A发送同步信息
posted @ 2018-03-20 13:57  hzhang_NJU  阅读(163)  评论(0编辑  收藏  举报