<<网络是怎样连接的>>笔记第2章用电信号传输Tcp/ip数据
- 创建套接字:
协议栈的内部结构、套接字的实体,以及创建套接字的操作过程
- 连接服务器:
“连接”具体是进行怎样的操作,在这个过程中协议栈到底是如何工作的,
以及客户端和服务器是如何进行交互的。
- 收发数据:
在这个阶段, 协议栈会将从应用程序收到的数据切成小块并发送给服务器。协议栈还需要确认切分出的每个包是否已经送达服务器,对于没有送达的包要重新发送一次。
- 从服务器上断开连接并删除套接字:
断开操作的本质是当消息收发完成后客户端和服务器相互进行确认的过程,但不止于此。
- IP和以太网的包收发操作:实际的网络包是如 何进行收发的。
- UDP协议收发数据的操作:和TCP的差异,和它存在的必要性。


windows的netstat命令:

包:


2.12 套结字的实体
一个分配的内存空间:内含通信控制信息(用于控制通信的信息),如IP, port, 通信的state
2.13 socket
浏览器向socket程序发出委托,socket创建套接字。
- 分配内存
- 写入控制信息
- 告诉browser这个套接字的描述符(类似内存空间的标签)
2.2 连接server,( 也叫准备工作)
实际就是指收发两端发送数据前的准备工作,包括创建内存,用于临时存放数据。
connect:和server交换控制信息并在套接字中记录下拉,并准备之后的操作。
控制信息有2类:
- 头部信息:整个通信过程都需要TCP, IP, MAC以太
- 套接字中的信息:控制协议栈的操作。
2.3收发data
TCP协议也叫做三次握手策略,使用了TCP的flag: SYN, ACK
- 发送端首先发送一个带有syn标志的数据包给对方
- 接收端收到后,回传一个带有syn/ack标志的数据包,保湿传达确认信息。
- 最后发送端再回传一个带有Ack标志的数据包,代表握手结束。
ACK(acknowledgement)
ACK号 = 序号 + 长度
<<网络是怎样连接的>>笔记第2章用电信号传输Tcp/ip数据的更多相关文章
- <<网络是怎样连接的>>笔记第6章 request到达Web server, return response to browser
短短漫长旅程迎来终点. 概览.整体结构. 服务器的协议栈如何接收数据. 服务器解释request message并respond browser 接收response message并显示内容. 6. ...
- <<网络是怎样连接的>>笔记第5章 防火墙,缓存服务器
第5章 服务器防火墙,缓存服务器 部署地点 防火墙结构和原理 通过将请求平均分配给多台服务器来平衡负载 利用缓存服务器分担负载(客户端也可以部署缓存服务器, 缓存服务器用法很多) 内容分发服务(从缓存 ...
- (转) HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手、TCP/IP协议基础、加密学)
HTTP & HTTPS网络协议重点总结(基于SSL/TLS的握手.TCP/IP协议基础.加密学) 原文:http://blog.csdn.net/itermeng/article/detai ...
- 《TCP/IP具体解释》读书笔记(18章)-TCP连接的建立与中止
TCP是一个面向连接的协议.不管哪一方向还有一方发送数据之前.都必须在两方之间建立一条连接.这样的两端间连接的建立与无连接协议UDP不同.UDP向还有一端发送数据报时,无需不论什么预告的握手. 1.建 ...
- 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 ...
- 《TCP/IP具体解释》读书笔记(22章)-TCP的坚持定时器
TCP通过让接收方指明希望从发送方接收的数据字节数(即窗体大小)来进行流量控制. 假设窗体大小为0会发生什么情况呢?这将有效阻止发送方传送数据,直到窗体变为非0为止. ACK的传输并不可靠,也就是说, ...
- <<网络是怎样连接的>>笔记第一章browser生成message
网络:由负责搬运数字信息的机制 + 浏览器和服务器这些网络应用程序. web->协议栈,网卡->交换机,路由器->接入网,网络运营商->(防火墙,缓存服务器)->web服 ...
- 【网络】<网络是怎样连接的>笔记
[一] 浏览器 http://user:pwd@hosturl:port/dir/of/file 基本思路: 1.1 生成http请求信息 包含“对什么”“进行怎样的操作”两个方法.一般常用操作是GE ...
- 《TCP/IP具体解释》读书笔记(21章)-TCP的超时与重传
TCP提供可靠的运输层. 它使用的方法之中的一个就是确认从还有一端收到的数据.但数据和确认都有可能会丢失.TCP通过在发送时设置一个定时器来解决这样的问题.假设当定时器溢出时还没有收到确认,它就重传该 ...
随机推荐
- 【node】------mongoose的基本使用------【巷子】
1.安装mongoose npm install mongoose 2.启动数据库 mongod --dbpath d:\data\db 3.引入mongoose模块并连接数据库 const mong ...
- javascript飞机大战-----009游戏结束
/* 游戏引擎 */ var Engine = { //刚开始的游戏状态 gameStatus:false, //所以敌机 enemy:{}, //子弹 bullet:{}, //得分 scroe:0 ...
- 8.ajax查询数据
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- ubuntu16.04下安装opencv3的viz模块
OPENCV3.0默认是不安装VIZ模块的,那么如何安装呢? 如果已经安装了Opencv,现在要增加VIZ模块,应该再安装一次就可以吧,我没试过,我是卸载了原来的,重新安装的 简单来说,就是要多安装一 ...
- Python+ Calibre 处理 中文报纸
import re ##2 line='<a href=nw.D110000renmrb_20180401_1-01.htm><script>document.write(vi ...
- linux软件源配置
实操(虚拟机安装): 下载VMware,然后按照如下教程安装虚拟机: https://jingyan.baidu.com/article/c275f6ba07e269e33d756714.html ...
- python16_day38【flask】
一.简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架,对于Werkzeug本质是Socket服务端,其用于接收http请求并对请求进行预 ...
- 【pycharm】pycharm中设置virtualenv的虚拟环境为开发环境
pycharm中设置virtualenv的虚拟环境 因为在pycharm写代码比较方便 但是有时候virtualenv安装的环境在pycharm中会有红色波浪线报语法错误.作为一个强迫症,这怎么能忍, ...
- Learning to Rank之Ranking SVM 简介
排序一直是信息检索的核心问题之一,Learning to Rank(简称LTR)用机器学习的思想来解决排序问题(关于Learning to Rank的简介请见我的博文Learning to Rank简 ...
- 《C++ Concurrency in Action》
http://wiki.jikexueyuan.com/project/cplusplus-concurrency-action/content/resources/resource.html