[toc]
一、ip地址
二、端口
三、socket
四、UDP
五、TCP
一、IP地址
windows下查看ip地址:
ipcofig
ubutu下查看ip地址:
ifconfig
ubuntu下启动或禁用网卡
sudo ifconfig 网卡网 up/down
IP是Internet Protocol(网际互连协议)的缩写。
一般ip地址都是在说ip v4,192.168.1.104这就是ip。地址长度为32位,采用十进制,一共有
详解ip v4
每一个ip地址都包括两部分:网络地址和主机地址。
A类IP地址有1字节的网络地址和3字节的主机地址组成,网络地址最高位必须是“0”,可用的A类网络一共有126个,每个网络能容纳
B类IP地址有2字节的网络地址和2字节的主机地址组成,网络地址最高位必须是“10”,可用的A类网络一共有
C类IP地址有3字节的网络地址和1字节的主机地址组成,网络地址最高位必须是“110”,可用的A类网络一共有2097152个,每个网络能容纳 254个主机,0和255不能用。
D类地址用于多点广播。
E类地址保留,仅用作实验和开发用。
注意:IP地址127.0.0.1,127.255.255.255用于回路测试。如127.0.0.1可以代表本机IP地址,用http://127.0.0.1就可以测试本机中配置的Web服务器。
二、端口
1、什么是端口
如果把IP地址比作一间房子 ,端口就是出入这间房子的门。一个IP地址的端口可以有65536(即:2^16)个!端口是通过端口号来标记的,范围是从0 到65535(2^16-1)。
比如在电脑端使用微信发送一条消息到另一台电脑的微信上,实际上传输的过程中需要目标ip、目标端口号、本机ip、本机端口号、内容。
2、端口是如何分配的?
- 周知端口(well known port)
周知端口是众所周知的端口号,范围从0到1023,其中80端口分配给WWW服务,21端口分配给FTP服务等。我们在IE的地址栏里输入一个网址的时候是不必指定端口号的,因为在默认情况下WWW服务的端口是“80”。比如139 端口专门用于NetBIOS与TCP/IP之间的通信,不能手动改变。
- 注册端口
端口1024到49151,分配给用户进程或应用程序。这些进程主要是用户选择安装的一些应用程序,而不是已经分配好了公认端口的常用程序。这些端口在没有被服务器资源占用的时候,可以用用户端动态选用为源端口。
- 动态端口
动态端口的范围是从49152到65535。之所以称为动态端口,是因为它 一般不固定分配某种服务,而是动态分配。
1024-65535这些端口一旦程序关闭,同时也就释放了所占用的端口号。
三、socket简介(套接字)
1、什么是套接字
套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开、读写和关闭等操作。总之,套接字Socket=(IP地址:端口号),例如,如果IP地址是210.37.145.1,而端口号是23,那么得到套接字就是(210.37.145.1:23)。
主要用来解决网络中进程之间的通讯:
- 本地进程间通讯
a、消息传递(管道、消息队列、FIFO);
b、同步(互斥量、条件变量、读写锁、文件和写记录锁、信号量);
c、内存共享;
d、远程过程调用;
- 网络中进程如何通讯?
首先要解决两个问题:
a、如何标识一台主机?
b、如何标识唯一进程,本地通过pid标识,网络中应该怎样标识?
解决办法:
a、TCP/IP网络层中ip地址可以唯一标识网络中的主机;
b、传输层的“协议+端口”可以唯一标识主机中应用程序(进程);
因此,利用三元组(ip地址、协议、端口)就可以标识网络进程了。
2、创建socket
在python中使用socket模块的函数socket就可以完成:
import
说明:
- AddressFamily:可以选择AF_INET(用于Internet进程间通信)或者AF_UNIX(用于同一台机器进程间通信),实际工作中常用AF_INET
- Type:套接字类型,可以是SOCKET_STREAM(流式套接字,主要用于TCP协议)或者SOCKET_DGRAM(数据报套接字,主要用于UDP协议)
3、创建一个TCP socket
import
4、创建一个UDP socket
import
四、UDP
1、什么是UDP?
用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据报的方法。
UDP通信方式类似于写信模式,每次发送数据都要写上对方ip,端口,自己ip、端口。这样的通讯方式的缺点就是不安全。可能出现丢失。
2、使用udp发送接收数据
import
3、使用UDP接收数据
import
4、UDP聊天器
import
五、TCP
1、什么是TCP?
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。
TCP通信需要经过创建连接、数据传送、终止连接三个步骤。
TCP通信方式类似于打电话,它的优点在于稳定,如果数据发送失败,就会再发一遍。保证数据一定能够被传递,同时接受方会对发送的数据进行检查,如果检测到有错误他会要求重发一次,保证了数据不能丢失。这就是所谓的TCP采用了发送问答机制、超时重传、错误校验、流量控制和阻塞管理。从而保证了数据的可靠传输。
2、TCP客户端
import
3、TCP服务器
import
4、文件下载器
# 客户端