tcp/ip通信传输流

利用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通信传输流的更多相关文章
- TCP/IP通信网络基础
TCP/IP是互联网相关的各类协议族的总称. TCP/IP的分层管理 分层的优点:如果只有一个协议在互联网上统筹,某个地方修改就要把所有的部分整体换掉,采用分层则只需要改变相应的层.把各个接口部分规划 ...
- 使用Boost asio实现同步的TCP/IP通信
可以先了解一下Boost asio基本概念,以下是Boost asio实现的同步TCP/IP通信: 服务器程序部分,如果想保留套接字之后继续通信,可以动态申请socket_type,保存指针,因为so ...
- 使用Boost asio实现异步的TCP/IP通信
可以先了解一下Boost asio基本概念,以下是Boost asio实现的异步TCP/IP通信: 服务器: #include "stdafx.h" #include <io ...
- TCP/IP 通信
TCP/IP 通信又叫socket 通信,是基于TCP/IP协调面向连接的一个数据传输技术.是属于OSI国际标准的传输层,三次握手 提供数据,有序,安全,端到端的传输和接收.它有三个主要协议:传输控制 ...
- tcp/ip通信第5期之服务器端程序
/* 此程序是tcp/ip通信服务器端程序,测试运行在redhat5上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> # ...
- tcp/ip通信第5期之客户机端程序
/*此程序是tcp/ip通信的客户机端程序, 测试运行在redhat6系统上 重构readline函数,解决粘包问题——利用“\n”识别一个消息边界 */ #include<stdio.h> ...
- 第4章 TCP/IP通信案例:访问Internet上的Web服务器
第4章 TCP/IP通信案例:访问Internet上的Web服务器 4.2 部署代理服务器 书中为了演示访问Internet上的Web服务器的全过程,使用了squid代理服务器程序模拟了一个代理服务器 ...
- TCP/IP通信过程(以发送电子邮件为例)(转)
1.应用程序处理 (1)A用户启动邮件应用程序,填写收件人邮箱和发送内容,点击“发送”,开始TCP/IP通信: (2)应用程序对发送的内容进行编码处理,这一过程相当于OSI的表示层功能: (3)由A用 ...
- linux高性能服务器编程 (四) --TCP/IP通信案例
第四章 TCP/IP通信案例 HTTP代理服务器的大致工作原理 在HTTP通信链上,客户端和服务器之间通常存在某些中转代理服务器.它们提供对目标资源的中转访问.一个HTTP请求可能被多个 ...
随机推荐
- git常用命令记录
配置本地仓库 git config --global user.name.git config --global user.email 查看配置详情 git config -l 初始仓库 git in ...
- vue的双向绑定原理及实现
前言 使用vue也好有一段时间了,虽然对其双向绑定原理也有了解个大概,但也没好好探究下其原理实现,所以这次特意花了几晚时间查阅资料和阅读相关源码,自己也实现一个简单版vue的双向绑定版本,先上个成果图 ...
- Android中SimpleAdapter的使用—自定义列表
本人初学Android,今天研究到Adapter这块感觉挺有意思的,写了个自定义列表进行测试 首先我们新建一个layout列表布局文件,具体布局可以自己设定. 下面贴上我的自定义布局文件代码 < ...
- [原创]MLCC全球性缺货分析
2017首季开始全球片式多层陶瓷电容器(MLCC)供应火爆,目前部分厂商交期已延长4周以上,供需缺口达15%.再加之苹果iPhone 8第二季已提前启动备货期,其需求数量极为庞大,至少上亿只,而各大M ...
- docker核心概念及centos6下安装
Docker三大核心概念 镜像 容器 仓库 镜像 docker镜像类似于虚拟机镜像,可以将它理解为一个面向Docker引擎的只读模板,包含了文件系统. 容器 1.容器是从镜像创建的应用运行实例,容器和 ...
- kafka 0.8.2 消息消费者 consumer
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...
- TreeMap集合特点、排序原理
TreeMap特点(类似于TreeSet): 1.无序,不允许重复(无序指元素顺序与添加顺序不一致) 2.TreeMap集合默认会对键进行排序,所以键必须实现自然排序和定制排序中的一种 3..底层使用 ...
- linux升级openssh7.4sp1
1.准备相关的包 openssh下载地址:http://mirror.internode.on.net/pub/OpenBSD/OpenSSH/portable/ openssl相关包下载:http: ...
- 刨根究底字符编码之十二——UTF-8究竟是怎么编码的
UTF-8究竟是怎么编码的 1. UTF-8编码是Unicode字符集的一种编码方式(CEF),其特点是使用变长字节数(即变长码元序列.变宽码元序列)来编码.一般是1到4个字节,当然,也可以更长. 为 ...
- Dojo初探之4:dojo的event(鼠标/键盘)事件绑定操作(基于dojo1.11.2版本)
前言: 上一章详解了dojo的dom/query操作,本章基于dom/query基础上进行事件绑定操作 dojo的事件 dojo的事件绑定操作分为鼠标和键盘两种进行详解 1.鼠标事件 我们沿用上一章中 ...