只要是能够通信的机器,能够上网的机器,一定用的就是tcp/ip协议族
TCP/IP协议不单单指TCP和IP协议,它是协议群的统称。比如:IP 或 ICMP、TCP 或 UDP、TELNET 或 FTP、以及 HTTP 等都属于 TCP/IP 协议。它们与 TCP 或 IP 的关系紧密,是互联网必不可少的组成部分。TCP/IP 一词泛指这些协议,因此,有时也称 TCP/IP 为网际协议群。
互联网进行通信时,需要相应的网络协议,TCP/IP 原本就是为使用互联网而开发制定的协议族。因此,互联网的协议就是 TCP/IP,TCP/IP 就是互联网的协议。
为了能够实现不同类型的计算机和不同类型的操作系统之间进行通信,引入了分层的概念
最早的分层体系结构是OSI开放系统互联模型,是由国际化标准组织(ISO)指定的,由于
OSI过于复杂,所以到现在为止也没有适用,而使用的是TCP/IP协议族.
OSI一共分为7层,TCP/IP协议族一共四层,虽然TCP/IP协议族层次少,但是却干了OSI7层
所有任务
应用程序间沟通的层。
例如:FTP、Telnet、HTTP等
提供进程间的数据传送服务,负责传送数据,提供应用程序端到端的逻辑通信
例如:TCP、UDP
提供基本的数据封包传送功能,最大可能的让每个数据包都能够到达目的主机。
例如:IP、ICMP等
负责数据帧的发送和接收
每层完成自己的任务,最终通过不同层次的处理完成数据的收发
实现在一个相互连接的网络系统上从源地址到目的地传输数据包所提供必要功能的协议
特点:
不可靠:它不能保证IP数据包能成功地到达它的目的地,仅提供尽力而为的传输服务
无连接:IP并不维护任何关于后续数据包的状态信息。每个数据包的处理是相互独立
的。IP数据包可以不按发送顺序接收
IP数据包中含有发送它主机的IP地址(源地址)和接收它主机的IP地址(目的地址)
总结: 一句话,ip协议只负责找到接收者,并且告知你接收者的地址。
TCP是一种面向连接的,可靠的传输层通信协议
功能:
提供不同主机上的进程间通信
特点
1、建立链接->使用链接->释放链接(虚电路)
2、TCP数据包中包含序号和确认序号
3、对包进行排序并检错,而损坏的包可以被重传
服务对象
需要高度可靠性且面向连接的服务
如HTTP、FTP、SMTP等
总结:一句话,保证数据完整传给接收者
UDP是一种面向无连接的传输层通信协议
功能:
提供不同主机上的进程间通信
特点
1、发送数据之前不需要建立链接
2、不对数据包的顺序进行检查
3、没有错误检测和重传机制
服务对象
主要用于“查询—应答”的服务
如:NFS、NTP、DNS等
总结:一句话,不保证数据完整传给接收者
网卡又称为网络适配器或网络接口卡NIC,但是现在更多的人愿意使用更为简单的名称“网卡”
通过网卡能够使不同的计算机之间连接,从而完成数据通信等功能。
每一个网卡在出厂时,都会给分配一个编号,这个编号就称之为mac地址。
MAC地址,用于标识网络设备,类似于身份证号,且理论上全球唯一。
组成:以太网内的MAC地址是一个48bit的值,通常人为识别时是通过16进制数来识别的,
以两个十六进制数为一组,一共分为6组,每组之间通过:隔开,前三组称之为厂商ID,
后三组称之为设备ID
ifconfig
鼠标右键点击计算机右下角电脑图标,选择网络和共享中心,左边选择更改适配器设置,找
到自己联网的图标,双击打开,点击详细信息,即可找到对应的mac地址
IP地址是一种Internet上的主机编址方式,是任意一台主机在网络中的唯一标识
ipv4,占32位
ipv6,占128位
ipv4一般使用点分十进制字符串来标识,比如192.168.3.103
使用32bit,由{网络ID,主机ID}两部分组成
子网ID:IP地址中由子网掩码中1覆盖的连续位
主机ID:IP地址中由子网掩码中0覆盖的连续位
子网ID不同的网络不能直接通信,如果要通信则需要路由器转发
主机ID全为0的IP地址表示网段地址
主机ID全为1的IP地址表示该网段的广播地址
例如:
192.168.3.10和192.168.3.111可以直接通信
如果192.168.3.x网段而言,192.168.3.0表示网段,192.168.3.255表示广播地址
A类地址:默认8bit子网ID,第一位为0,前八位00000000 - 01111111,范围0——127.x.x.x
B类地址:默认16bit子网ID,前两位为10,前八位10000000 - 10111111,范围128——191.x.x.x
C类地址:默认24bit子网ID,前三位为110,前八位11000000 - 11011111,范围192——223.x.x.x‘D类地址:前四位为1110,组播地址,前八位11100000-11101111,范围224——239.x.x.x
A,B,C三类地址是最常用的
图中,1o表示回环,红色框中,innet 地址:127.0.0.1 称为回环地址
作用:
主要是测试本机的网络配置,能ping通127.0.0.1 说明本机的网卡和IP协议安装都没有问题
注意
127.0.0.1~127.255.255.254中的任何地址都将回环到本地主机中
不属于任何一个有类别地址类,它代表设备的本地虚拟接口
以ping外网为例,判断是否可以通信
使用命令: ping www.baidu.com
看 received , 0% packet loss ,翻译:接收数据包0丢失。即通信成功
是一个32bit由1和0组成的数值,并且1和0分别连续
作用
指明IP地址中哪些位标识的是主机所在的子网以及哪些位标识的是主机号
特点
必须结合IP地址一起使用,不能单独存在
IP地址中由子网掩码中1覆盖的连续位为子网ID,其余为主机ID
子网掩码的表现形式
192.168.220.0/255.255.255.0 (用 / 表示子网掩码)
192.168.220.0/24 (24表示:24个1, 另外8个表示0 即:255.255.255.0)
手动进行配置如下(linux) 基本不用设置(默认的)
默认的子网掩码
A类ip地址的默认子网掩码为255.0.0.0
B类ip地址的默认子网掩码为255.255.0.0
C类ip地址的默认子网掩码为255.255.255.0
TCP/IP协议采用端口标识通信的进程——用于区分一个系统里的多个进程
特点
1、对于同一个端口,在不同系统中对应着不同的进程2、对于同一个系统,一个端口只能被一个进程拥有
3、一个进程拥有一个端口后,传输层送到该端口的数据全部被该进程接收,同样,进
程送交传输层的数据也通过该端口被送出
自我理解:在我们应用程序中,有邮件发送信息,有QQ发送信息,有微信发送信息。。等等通信软件。当我们运行这些网络应用程序的时候,运行的程序就是一个进程,如何区分,是邮件,还是QQ,微信。由它们的进程ID号区分。当我们使用 邮件、QQ、微信发送给对方信息时。对方是如何收到,我们会不会遇到邮件发送到对方微信,QQ发送到对方微信上。不会。为什么,因为存在端口号。
不管是我的电脑,还是对方的电脑,我们的网络应用程序,只要运行都会拥属于自己的端口号。比如,我用QQ发送给对方QQ。我的QQ就是一个进程,它拥有属于自己的端口号,对方QQ也是进程,它也有自己的端口号。端口相当于发送的通道口,我为起始口,对方为终点口,直接保证数据传送准确性。
类似pid标识一个进程;在网络程序中,用端口号(port)来标识一个运行的网络程序
特点
1、端口号是无符号短整型的类型
2、每个端口都拥有一个端口号
3、TCP、UDP维护各自独立的端口号
4、网络应用程序,至少要占用一个端口号,也可以占有多个端口号
由互联网数字分配机构(IANA)根据用户需要进行统一分配
例如:FTP—21,HTTP—80等
服务器通常使用的范围;
若强制使用,须加root特权
应用程序通常使用的范围。
一般我们可以使用的端口号就是在这个范围,比如6666,7777,8888,19999...等等
注意:端口号类似于进程号,同一时刻只能标志一个进程。
预告:下一节:数据包的组装与拆解