TCP/IP是一组用于实现网络互联的通信协议,通常称为TCP/IP协议族。包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等。

一、TCP/IP模型将协议分为了4层

  1. 应用层——为用户提供所需的各种服务,如FTP、Telnet、DNS、SMTP等
  2. 传输层——为应用层实体提供端到端的通信功能,保证数据包按序传送以及数据的完整性。TCP、UDP等
    • 面向连接的传输控制协议(Transmission Controt Protocol, TCP)——可靠的、通过”三次握手“来连接的数据传输服务
    • 面向无连接的用户数据报协议(Cuser Datagram Protocol, UDP)——不保证可靠的、无连接的数据传输服务
  3. 网际互联层——主要解决主机到主机的通信路由问题,赋予主机一个IP地址来完成对主机的寻址,它还负责数据包在多种网络中的路由。IP、IGMP、ICMP等
    • 网际协议(Internet Protocol, IP)——提供一个可靠、无连接的数据报传递服务
    • 互联网组管理协议(Internet Group Management Protocol, IGMP)
    • 互联网控制报文协议(Internet Control Message Protocal, ICMP)
  4. 网络接口层——监视数据在主机和网络之间的交换[数据链路层和物理层]
    • 地址解析协议(Address Resolution Protocol, ARP, 在数据链路层)

二、TCP/IP基本知识

网络主机间能够互相通信所需要共同遵守的规则就是网络协议,普遍使用TCP/IP网络协议,此外还需要正确配置IP地址、子网掩码等网络参数。

1)TCP/IP协议

TCP传输控制,是传输层的协议,它提供了可靠的数据报传输服务

IP 网际互联,是网际互联层的协议,用来提供网络中的统一编址和路由问题

2)IP地址

在Internet上,个主机通过TCP/IP协议发送和接收数据报,各个数据报根据其目的主机的IP地址来进行互联网络中的路由选择。

IP地址是互联网上网络接口的唯一标识,给网络中主机提供唯一的网络地址。IPv4是由一个32位的二进数字组成,点分十进制表示;IP地址采用两级结构,主机所属的网络+主机,网络地址表示主机的网段,同一网段中的所有主机拥有相同的网络地址,网络地址是统一分配的,目的是为了保证网络地址的全球唯一性;主机地址表示某个网段中的一个具体的网络接口,主机地址由各个网络的系统管理员分配。

IP地址分为A、B、C、D、E五类,A、B、C三类在全球范围内统一分配,D、E为特殊网址,由高位字节标示。另外还有 一种专用IP地址,这类地址只在专用网络(内网)中使用。如:10.0.0.1~10.255.255.254、172.26.0.1~172.32.255.254、192.168.0.1~192.168.255.254,我靠中心和圆山的王都在内网网段!

地址类型   高位字节 最高字节范围 网络地址位数(可支持网络数) 主机ID位数(每个网络支持的主机数)
A 0 1~126 7位(2^7-2=126) 24位(16777214)
B 10 128~191 14位(16384) 16位(65534)
C 110 192~223 21位(2097152) 8位(254)

3)子网与子网掩码

划分子网是指把主机地址中的一部分借用为网络地址,这样可以把一个较大的网络划分为多个较小的网络,这些较小的网络即为子网,子网是基于一组IP地址的逻辑网络。

为了确定网络地址和主机地址就必须借助子网掩码,子网掩码码是一个32为地址,其作用是用于屏蔽IP地址的一部分以区分网络地址和主机地址,指明32位IP地址中哪些位为网络地址,哪些位为主机地址。TCP/IP协议利用子网掩码判断目标主机是位于本地网络还是远程网络。A、B、C三类网络的子网掩码:

类别 二进制值 十进制值
A 11111111.00000000.00000000.00000000 255.0.0.0
B 11111111.11111111.00000000.00000000 255.255.0.0
C 11111111.11111111.11111111.00000000 255.255.255.0

4)端口

数据报通过IP到带目的主机后,由于多个应用程序在同一主机上运行,目的主机必须通过端口来确定应该把数据报传送给主机中哪个程序。端口号可以分为三类:

公认端口(WellKnownPorts)0~1023,它们紧密绑定(binding)于一些服务。

注册端口(RegisteredPorts)1024~49151,他们松散的banding于一些服务。许多系统处理动态端口从1024开始

动态和/或私有端口(Dynamicand/orPrivatePorts)49125~65535,理论上,不应为服务分配这些端口,但也有例外。

5)网关地址

主机的IP地址和子网掩码设置后,同一网段内的机器就可以通信了,而处于不同网段的主机则必须通过网关才能进行通信,把数据包转发给它的网关,再由网关转发到相应的网络。网关是一个网络和另一个网络间的入口地址(IP),为了实现与不同网段的主机进行通信,必须为主机设置网关地址,它一定是同网段主机或根路由器的IP地址。

6)域名

因为十进制点分不容易记忆,所以有了域名,cn为中国。

7)DNS服务器地址

解析域名包括从域名到IP地址映射的正向解析和从IP到域名映射的反向解析。DNS采用层次化的分布式数据结构,每个DNS服务器只负责其管辖区域中的主机域名和IP地址的映射表。

3、三次握手、四次挥手

TCP/IP网络基础知识的更多相关文章

  1. TCP/IP_网络基础知识

    今天看到k8s的网络,顿感网络知识不是特别扎实,立马回头补一下Tcp-ip知识,顺便记录下学习的过程: 计算机与网络发展的7个阶段: 批处理时代(计算机按照顺序处理,50年代)->分时系统时代( ...

  2. TCP/IP协议栈基础知识

    设计思想 把一个复杂的事物进行分层划分,使得每个部分变得相对简单 分层模型 OSI分为7层模型   tcp/ip分为四层模型 应用层(Application) 传输层(Transport) 网络层(I ...

  3. 【RL-TCPnet网络教程】第12章 TCP传输控制协议基础知识

    第12章      TCP传输控制协议基础知识 本章节为大家讲解TCP(Transmission Control Protocol,传输控制协议),通过本章节的学习,需要大家对TCP有个基本的认识,方 ...

  4. Linux学习(1)- TCP/IP网络协议基础

    Linux学习(1)- TCP/IP网络协议基础 一.TCP/IP 简介 学习内容 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输 ...

  5. (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)

    HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...

  6. TCP/IP协议基础(转)

    转自 http://www.chinaunix.net 作者:Bernardus160  发表于:2003-12-03 17:33:15 TCP/IP协议基础 -------------------- ...

  7. 网络基础知识、ASP.NET 核心知识(1)*

    为什么要写网络? 我原本的计划是这样的,连续两天梳理ASP.NET开发的核心知识.说到这呢,有人问了.“不是说好了做ASP.NET笔记吗?为啥要写网络基础知识?是不是傻?” 原因是这样的.作为网站开发 ...

  8. IP地址基础知识

    IP地址基础知识 网络号:用于识别主机所在的网络:主机号:用于识别该网络中的主机. 一 OSI/RM模型 应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 二 TCP/IP模型 数据链路层( ...

  9. Java 网络编程(一) 网络基础知识

    链接地址:http://www.cnblogs.com/mengdd/archive/2013/03/09/2951826.html 网络基础知识 网络编程的目的:直接或间接地通过网络协议与其他计算机 ...

随机推荐

  1. opencv::轮廓发现(find contour in your image)

    轮廓发现(find contour) 轮廓发现是基于图像边缘提取的基础寻找对象轮廓的方法. 所以边缘提取的阈值选定会影响最终轮廓发现结果 //发现轮廓 cv::findContours( InputO ...

  2. boost::VS2017下编译和配置boost库

    环境: win10  vs2017  v141 1.下载  boost_1_70_0.zip. 2.以管理员方式打开 3. bootstrap.bat 4.编译64位库 b2.exe stage -- ...

  3. epoll--IO多路复用

    理解 epoll 过程 #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...

  4. vue 详情跳转至列表页 实现列表页缓存

    甲爸爸提了一个需求,希望公众号内的商城能够像app一样,从商品详情页跳转至列表页及其他列表页时,可以实现列表页缓存(数据不刷新.位置固定到之前点的商品的位置) 本来想着scrollBehavior应该 ...

  5. 关于while和do while 的个人理解

    先上代码 int x=425; System.out.println("循环开始,我的初始值为:x="+x); //425 do { System.out.println(&quo ...

  6. Qt 表格的使用

    参考 http://doc.qt.io/qt-5/qtablewidget.html http://doc.qt.io/qt-5/qtablewidgetitem.html https://blog. ...

  7. 从零开始把项目发布到NPM仓库中心

    从零开始把项目发布到NPM仓库中心 前期准备 注册账号 https://www.npmjs.com/signup 网易邮箱注册失败,用QQ邮箱成功 使用npm 命令注册(建议使用网页): npm ad ...

  8. windows下Eclipse远程连接linux hadoop远程调试 经验(一)

    环境 Windows 7 64bit JDK 1.6.0_45  (i586) JDK 1.7.0_51  (i586) Eclipse Kepler Eclipse -plugin-1.2.1.ja ...

  9. 记录一些常用的python库、软件或者网址

    1.数据收集 BeautifulSoup.scrapy.selenium.requests 2.数据分析 pandas.numpy.pyDD.spacy 3.数据可视化 matplotlib.seab ...

  10. IoTClient开发3 - ModBusTcp协议客户端实现

    前言 进过前面两章的介绍,今天开始正式的实战. 进制转换 很多朋友对于进制转换可能是在刚学计算机的时候有接触,后来做高级语言开发可能就慢慢忘记了.我们做工控开发的时候需要经常进行进制转换,这里和大家一 ...