亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? tcpip.h

?? 基于SPCE061A的TCPIP協議
?? H
?? 第 1 頁 / 共 2 頁
字號:
// TCP標識 TcpHdr_Stru.HdrLen 代表TCP頭長度,以32bit(4 byte)為單位
#define cTCP_HDR_NOOPT		0x05	// TCP頭無操作選項
#define cTCP_HDR_OPT		0x07	// TCP頭有操作選項,操作選項長度4 word 或8 byte
// TCP標識 TcpHdr_Stru.Flags
#define cTCP_FIN			0x01
#define cTCP_SYN			0x02
#define cTCP_RST			0x04
#define cTCP_PSH			0x08
#define cTCP_ACK			0x10
#define cTCP_URG			0x20
	UINT16 WndSize;					// 窗口大小,表明接還能容納的TCP數據(最大0xFFFF)
#define cTCP_WS				1460	// 定義本地窗口,必須滿足條件:cTCP_MSS <= cTCP_MSS <= 0xFFFF
	UINT16 TcpChkSum;
	UINT16 UrgPoint;				// 緊急指針
//	UINT16 OptData[2];
// 最長TCP報文大小(頭選項之一):字節(最大1460)
#define cTCP_MSS     		1460	// 定義本地最大TCP報文長度
}TcpHdr_Stru;

// TCP 本地初始32位序號
extern volatile UINT16 guwISN[2];

// TCP頭的常數指針。
#define cpTcpHdrBuf		((UINT16 *)&guwEthBuf[cEthHdrLen + cIpHdrLen])			// 指向Word的buffer
#define cptTcpHdrBuf	((TcpHdr_Stru *)&guwEthBuf[cEthHdrLen + cIpHdrLen])		// 指向結構

// TCP數據段指針
#define cpTcpData	((UINT16 *)&guwEthBuf[cEthHdrLen + cIpHdrLen + cTcpHdrLen])	// 指向Word的buffer

//---------------------------------------------------------------------------------

// ARP表結構
typedef struct{
	UINT16 IpAddr[2];
	UINT16 EthAddr[3];
	UINT16 Time2;		// 刷新時刻,2Hz的計數
// ARP表記錄的最大老化清除時間:20分鐘(4.4BSD-Lite 默認)。
#define cArpMaxAge 20*60
}ArpEntries_Stru;

// 最大ARP表記錄數
#define cArpTabSize 	16

// 分配ARP鏈表的內存
extern ArpEntries_Stru gstArpTab[cArpTabSize];

// ARP表記錄的地址
#define cptArpTabStart		((ArpEntries_Stru *)&gstArpTab[0])				// 指向結構,開始地址指針
#define cptArpTabEnd		((ArpEntries_Stru *)&gstArpTab[cArpTabSize])	// 指向結構,結束地址指針

//---------------------------------------------------------------------------------

// TCP事務聯接狀態記錄結構
typedef struct{
	UINT16 TcpStateFlags;		// TCP狀態和標識
// TCP 事務狀態標識 Conn_Stru->TcpStateFlags
#define cTCP_CLOSED			0x00
#define cTCP_SYN_RCVD		0x01
#define cTCP_SYN_SENT		0x02
#define cTCP_ESTABLISHED	0x03
#define cTCP_FIN_WAIT_1		0x04
#define cTCP_FIN_WAIT_2		0x05
#define cTCP_CLOSING		0x06
#define cTCP_TIME_WAIT		0x07
#define cTCP_CLOSE_WAIT		0x08
#define cTCP_LAST_ACK		0x09
#define cTCP_TS_MASK		0x0f
#define cTCP_OUTSTANDING	0x10
#define cTCP_STOPPED		0x20
	UINT16 LocalPort;			// 本地端口
	UINT16 RemotePort;			// 遠端端口
	UINT16 RemoteIpAddr[2];		// 遠端IP
	UINT16 RcvNum[2];			// 下次接收包的遠端32位Seq序號
	UINT16 AckNum[2];			// 下次接收包的遠端32位Ack序號
  	UINT16 SeqNum[2];		    // 本地當前包32位Seq序號
	UINT16 MaxSegSize;          // 本連接事務使用的最長TCP報文大小,詳見TCP頭結構說明
	UINT16 Timer;				// 狀態需要等待的時間
	UINT16 NumRetran;			// 重傳次數
	UINT16 PollTime;			// 空閑時間計數
// 由于TCP事務輪詢時間為1秒,所以300秒空閑就異常終止當前連接。(WIN2K用900秒)
#define cTCP_MAX_POLL	300
}Conn_Stru;

// TCP最大聯接事務數。
#define cMaxConnetions		16

// 分配TCP最大聯接事務鏈表內存
extern Conn_Stru gstConns[cMaxConnetions];

// TCP最大聯接事務記錄表首地址
#define cptConnsStart		((Conn_Stru *)&gstConns[0])				// 指向結構
// TCP最大聯接事務記錄表結束地址
#define cptConnsEnd		((Conn_Stru *)&gstConns[cMaxConnetions])	// 指向結構

// 用于RTT估計器的重傳指數退避時間,公式: T = cTCP_RTO * 2^n (n表示第幾次重傳)
#define cTCP_RTO	3

// TCP超時關閉聯接的時間,即在TIME_WAIT狀態的聯接保持時間
#define cTCP_TIME_WAIT_2MSL		120		// 120 秒(因為TCP事務1秒輪詢1次)

// TCP最大重傳次數
#define cTCP_MAXRTX		3

// 本地TCP端口范圍
#define cLocalPortStart	4096	// 開始:0x1000
#define cLocalPortEnd	28672	// 結束:0x7000

// TCP最大偵聽端口數。除非作為Web服務器,否則通常為1
#define cMaxListenPorts		8	// 本應用允許偵聽端口

// 當前TCP事務聯接指針
extern Conn_Stru *gptConn;

// 分配TCP偵聽端口號鏈表內存
extern UINT16 guwListenPorts[cMaxListenPorts];

//---------------------------------------------------------------------------------

// 其它定義

// 正在處理包的字節長度(byte)。這個值隨處理正在處理的協議層的不同而改變!
extern volatile UINT16 guwEthLen;

// TCP/IP協議棧和應用程序間通訊的變量
extern volatile UINT16 guwFlags;
// 協議層通過guwFlags與應用層的聯系常數定義
#define cTCP_ACKDATA	0x01	// 上次發的數據已經被確認,通知應用程序可以發新的數據
#define cTCP_NEWDATA	0x02	// 遠端發給本地數據包,協議層需要ACK回應
#define cTCP_REXMIT		0x04	// 通知應用程序重發上次的數據包
#define cTCP_POLL		0x08	// 如果應用程序等待發數據,就給它一個標識POLL
#define cTCP_CLOSE		0x10	// 遠端已經關閉聯接,或應用程序要關閉聯接
#define cTCP_ABORT		0x20	// 遠端要放棄聯接,或應用程序要放棄聯接
#define cTCP_CONNECTED	0x40	// 聯接成功建立
#define cTCP_TIMEDOUT	0x80	// 超過重傳次數,放棄聯接

// cTCP_DATA:msip_Process()的入口參數,表示需要處理已經在guwEthBuf緩沖區的包。
// cTCP_TIMER:msip_Process()的入口參數,表示需要做周期性的TCP事務處理。
#define cTCP_DATA    1
#define cTCP_TIMER   2

//---------------------------------------------------------------------------------
// 以太收發功能

// ether_Send(): 發送以太包宏定義,兼容性定義
#define ether_Send()		RTL8019AS_TX(guwEthLen, cpEthHdrBuf)

// ether_Receive(): 接收以太包宏定義,兼容性定義
#define ether_Receive()		RTL8019AS_RX(cpEthHdrBuf)

//---------------------------------------------------------------------------------
// ARP 功能過程

// msip_Arp_Timer():ARP表老化掃描,每8秒執行1次(BSD default 10 seconds)
// 超過20分鐘(BSD default)未變化的,將被刪除!
extern void msip_Arp_Time(void);

// msip_Arp_Update():ARP表更新過程。
// uwIpAddr:IP地址
// uwEthAddr:物理地址
// 返回更新的ARP表的地址。如果地址在表外,說明更新失敗。
extern ArpEntries_Stru *msip_Arp_Update(UINT16 *uwIpAddr, UINT16 *uwEthAddr);

// msip_Arp_In():如果檢測到ARP包輸入就執行。
// 如果遠端ARP請求,過程發送ARP回應。
// 如果遠端ARP回應,過程更新ARP表。
extern void msip_Arp_In(void);

// msip_Arp_Out():將待發送的IP包封裝以太頭,并發送封裝好的以太包
// pARPTAB:指向ARP表中遠端IP和物理地址的影射表記錄地址
//       如果pARP是空指針,原IP包將被破壞,并且用ARP請求包替代發送。
extern void msip_Arp_Out(ArpEntries_Stru *pARPTAB);

//---------------------------------------------------------------------------------
// TCP/IP 功能:

// msip_TcpChkSum():TCP/IP校驗和過程。
extern UINT16 msip_TcpChkSum(void);

// msip_Process(): TCP/IP 全處理過程
// uwFlag:處理類型,見cTCP_DATA和cTCP_TIMER
// pConn:TCP事件指針
extern void msip_Process(UINT16 uwFlag);

// 系統接口類:

// msip_Init(): TCP/IP功能初始化,必須在其它TCP/IP處理前調用。包含ARP、被動偵聽端口和TCP事務連接
extern void msip_Init(void);

// msip_Periodic(): TCP/IP事務周期輪詢過程,1秒發生1次
extern void msip_Periodic(void);

// msip_Input(): 如果輸入的是IP包,接執行改過程。
#define msip_Input()	msip_Process(cTCP_DATA)

// msip_APPCALL(): 供用戶寫TCP應用代碼的函數名。
#define userapp		msip_APPCALL	// 指向RS232應用

// 應用程序接口類:(應用層控制協議層狀態變遷)

// msip_Listen(): TCP/IP被動偵聽本地端口是否被占用!用于服務端
// uwPort:本地TCP端口
// 返回0:表示端口被用
// 返回1:表示建立成功
extern UINT16 msip_Listen(UINT16 uwPort);

// msip_Connect(): TCP/IP建立主動聯接遠端,用于客戶端
// uwLocalPort:本地TCP端口
// puwRemoteIpAddr:遠端IP地址
// uwRemotePort:遠端TCP端口
// 返回0:表示建立失敗
// 返回1:表示建立成功
#if  TCP_ACTIVE_OPEN == 1
extern UINT16 msip_Connect(UINT16 uwLocalPort, UINT16 *puwRemoteIpAddr, UINT16 uwRemotePort);
#endif

// msip_Send():發送數據到當前的連接,保留的uIP定義,我們不用
#define msip_Send()

// msip_DataLen():當前TCP數據段的長度(Bytes),保留的uIP定義,我們不用
#define msip_DataLen()		guwEthLen

// msip_Close(): 主動關閉當前連接,應用層通知協議層正常關閉當前連接(FIN)
#define msip_Close()	(guwFlags = cTCP_CLOSE)

// msip_Abort():異常關閉當前連接,應用層通知協議層復位當前連接(RST)
#define msip_Abort()	(guwFlags = cTCP_ABORT)

// msip_Stop(): 停止接收含TCP數據段的包,應用層通知協議層將窗口尺寸設置為0,期待遠端暫停發送帶數據的TCP包!
#define msip_Stop()		(gptConn->TcpStateFlags |= cTCP_STOPPED)

// msip_Restart(): 重新開始當前的連接,應用層通知協議層重新開放窗口尺寸,以便允許遠端發送帶數據的TCP包!
#define msip_Restart()	{guwFlags |= cTCP_NEWDATA; 	gptConn->TcpStateFlags &= ~cTCP_STOPPED;}

// 測試判斷接口類:(應用層查詢協議層狀態)

// msip_connected():
// 服務或服務都有效,表明當前連接建立成功!狀態只會出現一次!
// 在客戶模式可以傳TCP數據;服務模式最好不發送數據!
#define msip_Connected()	(guwFlags & cTCP_CONNECTED)

// msip_Poll():
// 不論是服務或客戶,都表明協議層處于連接空閑狀態!標識由TCP事件輪詢傳回,在這個狀態下可設置
// 空閑計數器記錄空閑次數,達到一定時間就異常終止連接!如果這樣做,就不能在這個狀態發送數據!
// 允許發送數據的條件是:((guwEthLen > 0) || (guwFlags & cTCP_NEWDATA))
#define msip_Poll()		(guwFlags & cTCP_POLL)

// msip_NewData():處于ESTABLELISH狀態
//(guwEthLen > 0)協議層收到遠端發出TCP數據包,并期待應用層處理:在這個狀態下,允許只
// 發送無TCP數據的ACK確認(設置:guwEthLen = 0),或者發送帶TCP數據的ACK確認(把要發送的
// TCP數據長度設置給guwEthLen)。
#define msip_NewData()	(guwFlags & cTCP_NEWDATA)

// msip_Acked():處于ESTABLELISH狀態
//(guwEthLen = 0)協議層收到遠端發出ACK確認包。在這個狀態下,允許發送帶TCP數據的ACK
// 確認(把要發送的TCP數據長度設置給guwEthLen),或者不響應。
#define msip_Acked()		(guwFlags & cTCP_ACKDATA)

// mip_Reset_Acked(): 清除確認后的標志,好象沒有用?!(也許用于重傳)
#define mip_Reset_Acked()	(guwFlags &= ~cTCP_ACKDATA)

// msip_Rexmit(): 應用層上次的以發數據需要重傳,標識由TCP事件輪詢傳回!應用層不允許更改guwEthLen的值!!!
#define msip_Rexmit()	(guwFlags & cTCP_REXMIT)

// msip_Stopped(): 當前連接已經停止接收含TCP數據段的包,連接是正常的。
#define msip_Stopped()	(gptConn->TcpStateFlags & cTCP_STOPPED)

// msip_Aborted(): 當前連接已經異常關閉,協議層發送RST復位包。
#define msip_Aborted()	(guwFlags & cTCP_ABORT)

// msip_Closed(): 當前連接已經正常關閉,應用層發送FIN包
#define msip_Closed()	(guwFlags & cTCP_CLOSE)

// msip_TimedOut(): 當前連接時間溢出,并且連接因時間溢出異常關閉,協議層發送RST復位包。
#define msip_TimedOut()	(guwFlags & cTCP_TIMEDOUT)

// 附加接口類:-------------------------------------------------------------------

// msip_MSS(): 讀 TCP/IP 的MSS,以決定將要發送的數據長度遠端是否能接受。
#define msip_MSS()		(gptConn->MaxSegSize)

//--------------------------------------------------------------------------------------


#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区中文字幕| 日韩你懂的电影在线观看| 亚洲一区二区三区自拍| 国产欧美日韩精品一区| 日韩网站在线看片你懂的| 欧美性色黄大片手机版| 色8久久精品久久久久久蜜| 亚洲综合激情小说| 亚洲色图视频网| 国产欧美精品日韩区二区麻豆天美| 日韩区在线观看| 日韩欧美三级在线| 国产亚洲精品精华液| 国产欧美日韩激情| 欧美国产精品一区二区| 日韩精品影音先锋| 久久伊99综合婷婷久久伊| 久久精品视频一区| 精品日本一线二线三线不卡| 91视频在线观看| 国内精品写真在线观看| 亚洲欧美日韩国产成人精品影院 | 亚洲色欲色欲www| 精品国产欧美一区二区| 欧美一区二区精品在线| 国产69精品久久久久777| 国产综合色视频| 成人毛片在线观看| 不卡视频一二三| 美女视频黄 久久| 国产精品亚洲人在线观看| 国产一区 二区| k8久久久一区二区三区| 99re免费视频精品全部| 99久久99久久精品国产片果冻| 色爱区综合激月婷婷| 在线亚洲免费视频| 欧美成人a在线| 国产色91在线| 国产精品久久久久影院老司| 午夜久久福利影院| 久久精品国产精品青草| hitomi一区二区三区精品| 色综合久久99| 日韩精品一区二区三区在线观看| 久久久国产一区二区三区四区小说 | 91在线视频在线| 欧美日韩情趣电影| 欧美性欧美巨大黑白大战| 97se亚洲国产综合自在线不卡| 在线观看一区二区精品视频| 在线观看国产日韩| 欧美日韩一区三区| 欧美一级xxx| 久久久天堂av| 亚洲天堂免费看| 亚洲在线中文字幕| 亚洲小少妇裸体bbw| 亚洲一区二区三区四区五区黄| 91精品蜜臀在线一区尤物| 久久美女高清视频| 亚洲福利一二三区| 国产91对白在线观看九色| av男人天堂一区| 精品少妇一区二区三区日产乱码| 亚洲欧洲国产专区| 国模无码大尺度一区二区三区| 91麻豆福利精品推荐| 91精品婷婷国产综合久久性色| 国产午夜精品理论片a级大结局| 一区二区欧美精品| 成年人午夜久久久| 日韩三区在线观看| 天天综合网 天天综合色| 国产盗摄视频一区二区三区| 欧美日本韩国一区二区三区视频| 国产人成亚洲第一网站在线播放| 亚洲国产一区在线观看| 99久久99久久精品免费看蜜桃| 欧美一级xxx| 五月天久久比比资源色| 成人av电影在线网| 日本道免费精品一区二区三区| 亚洲成人一二三| 成人激情午夜影院| 色婷婷综合久久久中文一区二区 | 久久99精品久久只有精品| 99久久伊人网影院| 国产日韩精品视频一区| 一区二区在线观看免费| 成人av综合一区| 久久中文字幕电影| 青青国产91久久久久久| 色哟哟精品一区| 奇米色777欧美一区二区| 99精品一区二区三区| 国产精品你懂的在线| 美女一区二区久久| 欧美日韩在线不卡| 亚洲成精国产精品女| 91视频在线观看| 亚洲欧美色一区| 欧美自拍偷拍一区| 亚洲成av人片www| 欧美国产精品中文字幕| 99久久国产综合精品女不卡| 成人免费在线视频| 色欧美片视频在线观看| 亚洲成a人片综合在线| 在线播放中文一区| 精品一区二区免费| 中文字幕av免费专区久久| 成人高清视频免费观看| 亚洲综合成人在线视频| 欧美一区二区三区在线| 亚洲色图视频免费播放| 在线免费av一区| 亚洲精品午夜久久久| 欧美偷拍一区二区| 一区二区三区四区激情| 欧美午夜片在线观看| 亚洲成人激情自拍| 91麻豆国产福利精品| 亚洲国产中文字幕| 欧美日韩国产精选| 久久 天天综合| 久久天堂av综合合色蜜桃网| 成人毛片视频在线观看| 中文字幕一区二区日韩精品绯色| 在线免费观看日韩欧美| 亚洲香肠在线观看| 欧美一卡二卡三卡四卡| 日本不卡一区二区三区高清视频| 91麻豆精品国产91| 国产精品亚洲视频| ●精品国产综合乱码久久久久| 欧美日韩国产一区| 免费观看在线色综合| 国产精品免费丝袜| 91麻豆国产在线观看| 亚洲v中文字幕| 精品久久久久香蕉网| 国产一区视频导航| 亚洲人精品一区| 欧美另类变人与禽xxxxx| 国产精品18久久久久久久久久久久| 国产精品短视频| 国产精品99久久久久久久vr| 国产一区二区三区精品欧美日韩一区二区三区 | 欧美午夜精品电影| 日本sm残虐另类| 国产精品美女www爽爽爽| 色8久久人人97超碰香蕉987| 成人avav在线| 一区二区三区 在线观看视频| 欧美日韩亚洲另类| 国产在线播精品第三| 专区另类欧美日韩| 精品国产一区二区三区四区四| 狠狠色狠狠色合久久伊人| 亚洲成人动漫在线观看| 国产成人免费视频网站| 91成人免费在线| 91一区二区在线| 成人做爰69片免费看网站| 国产成人午夜精品5599| 粉嫩欧美一区二区三区高清影视| 国内一区二区在线| 国产成人夜色高潮福利影视| 91小视频在线观看| 欧美三级中文字| 久久久久久久久久久久久女国产乱 | 日韩欧美在线一区二区三区| 福利一区二区在线观看| 亚洲国产一区二区三区青草影视| 日本一区二区三区国色天香| 欧美美女激情18p| 色综合久久久久| 韩日精品视频一区| 日韩精品亚洲专区| 中文字幕在线视频一区| 久久久亚洲午夜电影| 欧美性感一类影片在线播放| 成人精品视频一区| 免费成人美女在线观看| 欧美变态凌虐bdsm| 在线不卡a资源高清| 91麻豆国产在线观看| 成a人片亚洲日本久久| 麻豆精品一二三| 日本不卡视频一二三区| 亚洲伦理在线精品| 国产精品美女www爽爽爽| 日韩一区二区影院| 成人黄色av电影| 久久国产精品免费| 亚洲最大成人综合| 一区二区三区免费| 国产精品久久久久国产精品日日| 中文字幕成人av|