TCP/IP协议是什么?

  • TCP:Transmission Control Protocol  传输控制协议
  • IP:Internet Protocol  因特网协议
  • 简单来说,TCP/IP协议就是一个有多种协议组成的协议族(Protocol Family)

TCP/IP协议的作用是什么?

  • 它定义了计算机通过网络互相通信及协议族各层次之间通信的规范。

TCP/IP参考模型:是一个抽象的分层模型;在这个模型中,有四个分层,包含了TCP/IP协议族中所有的网络协议。

  1. 主机-网络层:也称作网络接口层,是TCP/IP参考模型中的最低层。
    1. 功能:相当于一个中转站;
      1. 主要负责接收从【互联网络层】交来的【IP数据报】并将其通过【低层物理网络】发送出去。
      2. 从低层物理网络接受物理帧,并从中抽取出IP数据报交给互联网络层。
    2. 类型:
      1. 设备驱动程序
      2. 含自身数据链路协议的复杂子系统(TCP/IP参考模型中之所以没有定义数据链路层协议主要是因为TCP/IP最初的设计中已经使其可以使用各种典型的数据链路层协议
  2. 互联网层:也称为网际互连层或IP层。
    1. 功能:主要解决主机到主机的通信问题。
      1. 主要负责将源主机的报文分组发送到目的主机。(源主机和目的主机可以在同一个网络上,也可以在不同的网络上)
    2. 包含的协议:主要的协议有 网际协议(IP)、互联网组管理协议(IGMP)和互联网控制报文协议(ICMP)。
      1. IP协议是网际互联层最重要的协议,它提供的是一个不可靠、无连接的数据报传递服务。(尽力而为的服务)
      2. IP协议的协议数据单元是IP分组,由于在IP层提供数据报服务,IP分组也称为IP数据报
  3. 传输层:
    1. 功能:主要负责在互联网中源主机与目的主机的对等进程实体之间提供可靠的端到端的数据传输。
    2. 协议:定义了TCPUDP协议。
      1. TCP协议。是一种可靠的面向连接的协议。(Transimission Control Protocol)
        1. 它允许将一台主机的字节流无差错的传送到目的主机。
        2. TCP协议将应用层的字节流分成多个字节段,然后将一个一个字节段传送到IP层,并最终发送到目的主机。
        3. 可以将从IP层收到的字节段还原成原始的字节流,并传输到应用层。
      2. UDP协议。是一种不可靠的无连接的协议。(User Datagram Protocol)
        1. 主要用于不要求分组顺序到达的传输服务中。在基于UDP协议的传输服务中,分组的传输顺序检查与排序应由应用层完成。
        2. UDP协议主要面向 请求---应答式 的交易型应用。一次交易往往只有一来一回两次报文交换。
        3. UDP协议也常用于那些对可靠性要求不高,但要求网络的延迟较小的场合。(比如语音和视频数据的传送等)
  4. 应用层:包含了所有的高层协议。(目前TCP/IP参考模型中的应用层协议主要包括以下几种)
    1. 网络终端协议 Telnet;
    2. 域名系统 (Domain Name System, DNS);
    3. 简单邮件传输协议(Simple Mail Transfer Protocol, SMTP);
    4. 简单网络管理协议(Simple Network Management Protocol, SNMP);
    5. 文件传输协议(File Transfer Protocol, FTP);
    6. 超文本传输协议(Hyper Text Transfer Protocol, HTTP)。

注意:

  • 网际互联层和网络接口层实现了计算机网络中处于不同位置的主机之间的数据通信
  • 计算机网络最本质的活动是实现分布在不同地理位置的主机之间的进程通信。
  • 设置传输层的主要目的就是要实现上条所说的这种分布式进程之间的通信功能

未完待续。。。。。。

tcp/ip 学习(一)的更多相关文章

  1. tcp/ip学习笔记-TCP

    tcp/ip学习笔记-TCP 彭会锋 报文发送采用的是tcp_output函数,

  2. TCP/IP学习笔记(3)-IP、ARP、RARP协议

    这三个协议放到一起学习是因为这三个协议处于同一层,ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP得到要传输的数据 ...

  3. TCP/IP学习笔记(3)----IP,ARP,RARP协议

    把这三个协议放到一起学习是因为这三个协议处于同一层(网络层协议),ARP协议用来找到目标主机的Ethernet网卡Mac地址,IP则承载要发送的消息.数据链路层可以从ARP得到数据的传送信息,而从IP ...

  4. TCP/IP学习

    1.TCP/IP网络包括两部分 ①传输协议 ②网络协议

  5. TCP/IP学习20180629-数据链路层-ARP、IP

    1.数据链路层:IP.ARP.RARPARP协议用来找到目标主机的Ethernet网卡Mac地址,IP协议用来承载数据ARP协议找到目标,IP协议传输数据2.IP协议ip协议是TCP/IP协议的核心, ...

  6. TCP/IP学习20180627-数据链路层-ethernet

    ifconfig :查看主機支持的網絡協議eth0:以太網接口lo:loopback接口 以太网(Ether-net)的定是指数字设备公司( Digital Equipment Corp.).英特尔公 ...

  7. TCP/IP学习20180624

    计算机要互相通信.要有标准. TCP/IP协议,很多协议在一起.所以也叫TCP/IP协议族.经常接触的也就十几种. TCP/IP协议族按层次分为四层: 应用层(最上一层,http,ftp,pop3,i ...

  8. TCP/IP学习笔记(2)-数据链路层

    数据链路层有三个目的: 为IP模块发送和接收IP数据报. 为ARP模块发送ARP请求和接收ARP应答. 为RARP发送RARP请求和接收RARP应答 ip大家都听说过.至于ARP和RARP,ARP叫做 ...

  9. tcp/ip学习笔记(1)-基本概念

    为什么会有tcp/ip 在世界上各地,各种各样的电脑运行着各自不同的操作系统为大家服务,这些电脑在表达同一种信息的时候所使用的方法是千差万别.就好像圣经中上帝打乱了各地人的口音,让他们无法合作一样.计 ...

  10. TCP/IP学习笔记(5)------IP选路

    静态IP选路 一个简单的路由表 选路是IP层最重要的一个功能之一.前面的部分已经简单的讲过路由器是通过何种规则来根据IP数据包的IP地址来选择路由.这里就不重复了.首先来看看一个简单的系统路由表. D ...

随机推荐

  1. Java IO 流--FileUtils 工具类封装

    IO流的操作写多了,会发现都已一样的套路,为了使用方便我们可以模拟commosIo 封装一下自己的FileUtils 工具类: 1.封装文件拷贝: 文件拷贝需要输入输出流对接,通过输入流读取数据,然后 ...

  2. 理解java容器底层原理--手动实现ArrayList

    为了照顾初学者,我分几分版本发出来 版本一:基础版本 实现对象创建.元素添加.重新toString() 方法 package com.xzlf.collection; /** * 自定义一个Array ...

  3. CSS躬行记(7)——合成

    在图形编辑软件中,可以按特定地方式处理不同图层的合成,最新的CSS规范也引入了该功能,并提供了mix-blend-mode和background-blend-mode两个属性.混合模式(blendin ...

  4. 让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题

    此问题是在拥有相同配置的环境中,项目在win10跑的慢而在win7就正常的情况下发现的,一步步调试之后发现是文件操作的相关行为变的很慢,于是考虑到可能是系统问题,后来在如下链接找到了解决办法:http ...

  5. Linux 获取网卡名字列表

    lspci | egrep -i --color 'network|ethernet'

  6. 【Linux网络基础】网络子网划分基础知识(IP地址,子网)

    一. IP地址分类与子网划分基础 1. 什么是IP地址? 常见的ip地址版本为ipv4, ipv6 32位 4 * 8=32位. 32位二进制数字序列组成的数字序列   点分十进制 采用点将32位数字 ...

  7. C++编程入门题目--No.3

    题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? 程序分析: 在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后 的结 ...

  8. vue 比 js的强大

    //js写留言板 <!DOCTYPE html><html lang="en"><head> <meta charset="UT ...

  9. centos下的redis一键安装shell脚本

    #!/bin/bash yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget #安装依赖库 ...

  10. 使用 kind 快速搭建 kubernetes 环境

    使用 kind 快速搭建 Kubernetes 环境 Intro kind(Kubernetes IN Docker) 是一个基于 docker 构建 Kubernetes 集群的工具,非常适合用来在 ...