利用TCP/IP协议族进行网络通信时,会通过分层顺序与对方进行通信,发送端从应用层往下走,接收端则往应用层方向走。

  我们用HTTP进行举例

  客户端在应用层发出想要看到某个web页面的http请求HTTP协议

  为传输方便,传输层利用TCP协议将从应用层处收集到的数据进行分割,并在各个报文上打上标记序号,及端口号转发给网络层

  在网络层IP协议增加作为目的地址的MAC地址转发给链路层,这样一来,发往网络的通信请求就准备齐全了。

  接收端的服务器在链路层接收到数据,按层往上层发送,一直到应用层。当传输到应用层,才算真正接收到由客户端发送过来的HTTP请求。

  发送端在层与层之间传输数据时,每经过一层必定会被打上一个该层所属的首部信息(HTTP数据,TCP首部,IP首部,以太网首部),这种把数据信息包装起来的做法称为封装。

负责传输的IP协议

  IP协议的作用是把各种数据包传递给对方,完成这些,其中两个重要条件是IP地址和MAC地址IP地址指明了节点被分配的地址,MAC地址则是指网卡所属的固定地。IP地址和MAC地址进行配对,IP地址可变换,MAC地址基本不会改变。

使用ARP协议凭借MAC地址进行通信

  IP间的通信依赖MAC地址,一般来说通信双方在同一网络中的情况很少,因此需要通过网络设备进行中转。利用ARP协议将IP地址转化为MAC地址。(地址解析协议)

没有人能全面了解网络中的传输状况

  在到达通信目标之前,相应的设备只能获悉很粗略的传输路线。这种机制称为路由选择

确保可靠性的TCP协议

  按层次分,TCP位于传输层,提供可靠的字节流服务。

    所谓字节流服务,为了方便传输将大块数据分割成以报文段为单位的数据包进行管理,可靠的传输服务是指,能够把数据准确可靠的传输给对方。

确保数据能到达目标

      为确保准确无误的能把数据送达到目标处,TCP协议采用了三次握手策略,用TCP协议把数据包送出后,TCP协议采用三次握手的方法。确保对方到达,握手中采用了TCP的标志(flag)-SYN(synchronized)和ACK

  

  负责域名解析的DNS服务

  将IP地址转化为域名。

URI和URL

  URI   统一资源标识符。URI是某个协议方案表示的资源的定位标识符。URI用字符串标识某一互联网资源,URL表示资源的地点。

    URI存在绝对URL和相对URL。

tcp/ip通信传输流的更多相关文章

  1. TCP/IP通信网络基础

    TCP/IP是互联网相关的各类协议族的总称. TCP/IP的分层管理 分层的优点:如果只有一个协议在互联网上统筹,某个地方修改就要把所有的部分整体换掉,采用分层则只需要改变相应的层.把各个接口部分规划 ...

  2. 使用Boost asio实现同步的TCP/IP通信

    可以先了解一下Boost asio基本概念,以下是Boost asio实现的同步TCP/IP通信: 服务器程序部分,如果想保留套接字之后继续通信,可以动态申请socket_type,保存指针,因为so ...

  3. 使用Boost asio实现异步的TCP/IP通信

    可以先了解一下Boost asio基本概念,以下是Boost asio实现的异步TCP/IP通信: 服务器: #include "stdafx.h" #include <io ...

  4. TCP/IP 通信

    TCP/IP 通信又叫socket 通信,是基于TCP/IP协调面向连接的一个数据传输技术.是属于OSI国际标准的传输层,三次握手 提供数据,有序,安全,端到端的传输和接收.它有三个主要协议:传输控制 ...

  5. tcp/ip通信第5期之服务器端程序

    /* 此程序是tcp/ip通信服务器端程序,测试运行在redhat5上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> # ...

  6. tcp/ip通信第5期之客户机端程序

    /*此程序是tcp/ip通信的客户机端程序, 测试运行在redhat6系统上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> ...

  7. 第4章 TCP/IP通信案例:访问Internet上的Web服务器

    第4章 TCP/IP通信案例:访问Internet上的Web服务器 4.2 部署代理服务器 书中为了演示访问Internet上的Web服务器的全过程,使用了squid代理服务器程序模拟了一个代理服务器 ...

  8. TCP/IP通信过程(以发送电子邮件为例)(转)

    1.应用程序处理 (1)A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通信: (2)应用程序对发送的内容进行编码处理,这一过程相当于OSI的表示层功能: (3)由A用 ...

  9. linux高性能服务器编程 (四) --TCP/IP通信案例

    第四章 TCP/IP通信案例 HTTP代理服务器的大致工作原理        在HTTP通信链上,客户端和服务器之间通常存在某些中转代理服务器.它们提供对目标资源的中转访问.一个HTTP请求可能被多个 ...

随机推荐

  1. Day1-模块初识

    模块,也叫库,分为标准库和第三方库.标准库,直接导入使用,比如import getpass:第三方库,需下载安装才能使用,比如paramiko: 一.sys模块 import sys print(sy ...

  2. 【JavaScript制作页面时常用的五个特效,你用到了哪个?】

    常用的五个特效的相关知识点见附录(五道例题后有附录哦~): 例一: 1.在某页面中有一个图片和五个超链接,如下图所示: 单击不同的数字超链接显示不同的图片: 图1 图片幻灯片显示效果 提示: (1)默 ...

  3. 解决shiro和quartz2 版本冲突问题

    修改build.gradle   compile ("org.quartz-scheduler:quartz:2.2.3") compile ("org.apache.s ...

  4. Java静态代理与动态代理模式的实现

    前言:    在现实生活中,考虑以下的场景:小王打算要去租房,他相中了一个房子,准备去找房东洽谈相关事宜.但是房东他很忙,平时上班没时间,总找不到时间去找他,他也没办法.后来,房东想了一个办法,他找到 ...

  5. Spring读取xml配置文件的原理与实现

    本篇博文的目录: 一:前言 二:spring的配置文件 三:依赖的第三方库.使用技术.代码布局 四:Document实现 五:获取Element的实现 六:解析Element元素 七:Bean创造器 ...

  6. 解决ionic2各种坑文章收集

    小白最近打算用ionic2做一个APP,无奈没有大神指点,一路坎坷遇到数不清的坑(主要是墙的问题).这里整理一些大神的帖子链接,用以指路. 新建/打包: Ionic2+Angular2创建项目打包An ...

  7. ASP.NET MVC5(三):表单和HTML辅助方法

    表单的使用 Action和Method特性 Action特性用以告知浏览器信息发往何处,因此,Action特性后面需要包含一个Url地址.这里的Url地址可以是相对的,也可以是绝对的.如下Form标签 ...

  8. Java(14)继承

    1.继承(extends) 1.1 继承:遗传 1.2 语法 public class 子类 extends 父类{ } public class Dog extends Pet{ } public ...

  9. Bash中的数学计算

    一.整数计算 1.整数 $delare -i num$num=5+5$echo $num10 $num="5 + 8"$echo $num13注意:算式中如果有空格,需要用引号引起 ...

  10. 基于Vue全家桶开发的前端组件管理平台

    项目背景 项目背景是外包类建站公司里,设计环节沉淀了大量可复用组件,设计师往往只需要微调组件就拼凑出页面,交付给前端,理论上这些组件在前端也可以复用,但实际上前端每次都要重新实现整个页面,浪费很多人力 ...