1. 创建套接字:

    协议栈的内部结构、套接字的实体,以及创建套接字的操作过程

  2. 连接服务器:

    “连接”具体是进行怎样的操作,在这个过程中协议栈到底是如何工作的,

    以及客户端和服务器是如何进行交互的。

  3. 收发数据:

    在这个阶段, 协议栈会将从应用程序收到的数据切成小块并发送给服务器。协议栈还需要确认切分出的每个包是否已经送达服务器,对于没有送达的包要重新发送一次。

  4. 从服务器上断开连接并删除套接字:

    断开操作的本质是当消息收发完成后客户端和服务器相互进行确认的过程,但不止于此。

  5. IP和以太网的包收发操作:实际的网络包是如 何进行收发的。
  6. UDP协议收发数据的操作:和TCP的差异,和它存在的必要性。

windows的netstat命令:

包:

2.12 套结字的实体

一个分配的内存空间:内含通信控制信息(用于控制通信的信息),如IP, port, 通信的state

2.13 socket

浏览器向socket程序发出委托,socket创建套接字。

  1. 分配内存
  2. 写入控制信息
  3. 告诉browser这个套接字的描述符(类似内存空间的标签)

2.2 连接server,( 也叫准备工作)

实际就是指收发两端发送数据前的准备工作,包括创建内存,用于临时存放数据。

connect:和server交换控制信息并在套接字中记录下拉,并准备之后的操作。

控制信息有2类:

  • 头部信息:整个通信过程都需要TCP, IP, MAC以太
  • 套接字中的信息:控制协议栈的操作。

2.3收发data

TCP协议也叫做三次握手策略,使用了TCP的flag: SYN, ACK

  1. 发送端首先发送一个带有syn标志的数据包给对方
  2. 接收端收到后,回传一个带有syn/ack标志的数据包,保湿传达确认信息。
  3. 最后发送端再回传一个带有Ack标志的数据包,代表握手结束。

ACK(acknowledgement)

ACK号 = 序号 + 长度

<<网络是怎样连接的>>笔记第2章用电信号传输Tcp/ip数据的更多相关文章

  1. <<网络是怎样连接的>>笔记第6章 request到达Web server, return response to browser

    短短漫长旅程迎来终点. 概览.整体结构. 服务器的协议栈如何接收数据. 服务器解释request message并respond browser 接收response message并显示内容. 6. ...

  2. <<网络是怎样连接的>>笔记第5章 防火墙,缓存服务器

    第5章 服务器防火墙,缓存服务器 部署地点 防火墙结构和原理 通过将请求平均分配给多台服务器来平衡负载 利用缓存服务器分担负载(客户端也可以部署缓存服务器, 缓存服务器用法很多) 内容分发服务(从缓存 ...

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

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

  4. 《TCP/IP具体解释》读书笔记(18章)-TCP连接的建立与中止

    TCP是一个面向连接的协议.不管哪一方向还有一方发送数据之前.都必须在两方之间建立一条连接.这样的两端间连接的建立与无连接协议UDP不同.UDP向还有一端发送数据报时,无需不论什么预告的握手. 1.建 ...

  5. com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 127.0.0.1 的 TCP/IP 连接失败。错误:“Connection refused: connect。请验证连接属性。确保 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”

    检查SQL Server Configuration Manager 确定实例名为"SKYSQLEXPRESS"下的TCP/IP已经开启了: sql2014配置(系统为Window ...

  6. 《TCP/IP具体解释》读书笔记(22章)-TCP的坚持定时器

    TCP通过让接收方指明希望从发送方接收的数据字节数(即窗体大小)来进行流量控制. 假设窗体大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗体变为非0为止. ACK的传输并不可靠,也就是说, ...

  7. <<网络是怎样连接的>>笔记第一章browser生成message

    网络:由负责搬运数字信息的机制 + 浏览器和服务器这些网络应用程序. web->协议栈,网卡->交换机,路由器->接入网,网络运营商->(防火墙,缓存服务器)->web服 ...

  8. 【网络】<网络是怎样连接的>笔记

    [一] 浏览器 http://user:pwd@hosturl:port/dir/of/file 基本思路: 1.1 生成http请求信息 包含“对什么”“进行怎样的操作”两个方法.一般常用操作是GE ...

  9. 《TCP/IP具体解释》读书笔记(21章)-TCP的超时与重传

    TCP提供可靠的运输层. 它使用的方法之中的一个就是确认从还有一端收到的数据.但数据和确认都有可能会丢失.TCP通过在发送时设置一个定时器来解决这样的问题.假设当定时器溢出时还没有收到确认,它就重传该 ...

随机推荐

  1. 写出gradle风格的groovy代码

    写出gradle风格的groovy代码 我们先来看一段gradle中的代码: buildscript { repositories { jcenter() } dependencies { class ...

  2. talib 中文文档(十一):Cycle Indicator Functions 周期指标

    Cycle Indicator Functions 不是很懂,欢迎指教 HT_DCPERIOD - Hilbert Transform - Dominant Cycle Period 函数名:HT_D ...

  3. C# WinForm实现任务栏程序图标闪烁

    相信大家在用QQ的时候都会知道,你打开了QQ聊天窗口,如果窗口不是当前激活的窗口的话,收到QQ消息时,任务栏(不是托盘图标)上的图标会闪一下变成黄色(Win7默认主题下),用以通知用户有消息进来了,之 ...

  4. UML Diagrams Using Graphviz Dot

    Introduction Background This article is about using the dot tool from the Graphviz package to automa ...

  5. 设置UCHome注册登陆退出的跳转页自定义

    UCHome 默认注册.登录成功后跳转到 http://www.xxx.com/home/space.php?do=home 退出后会跳转到站点的首页,即 http://www.xxx.com/hom ...

  6. mysql实现开窗函数、Mysql实现分析函数

    关键字:mysql实现开窗函数.Mysql实现分析函数.利用变量实现窗口函数 注意,变量是从左到右顺序执行的 --测试数据 CREATE TABLE `tem` ( `id` ) NOT NULL A ...

  7. python之celery队列模块

    一.celery队列简介 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celery. 1 ...

  8. SVN Checkout 不包括源文件夹根目录

    SVN Checkout 不包括源文件夹根目录,比如我要checkout   trunk/ 下面的所有文件,但是不包括trunk 文件夹 我们可以在svn文件夹后面打个空格,在加个“.”就行了 eg: ...

  9. oracle 查询按月份分组

    如下表table1: 日期(exportDate)               数量(amount) --------------                    ----------- 14- ...

  10. linux安装Navicat,界面出现乱码解决方法

    下载Navicat:navicat112_mariadb_cs_x64.tar.gz 点击" ./start_navicat"安装出现界面便面为乱码 解决办法:打开start_na ...