使用SIP协议时,用户更换IP地址,TCP连接会中断吗,为什么? keil的RL_TCPnet库建立tcp的时候,为什么和tc...
\u4e0d\u77e5\u9053\u4e3b\u673aip\u5730\u5740\u600e\u4e48\u80fd\u591f\u5efa\u7acbtcp\u534f\u8bae\u7684soket\u8fde\u63a5\u5728\u684c\u9762\u4e0a\u7684\u7f51\u4e0a\u90bb\u5c45\u53f3\u5065\u5c5e\u6027,\u5728\u6253\u5f00\u7684\u754c\u9762\u627e\u5230\u672c\u5730\u8fde\u63a5\u5bf9\u5b83\u53f3\u5065\u5c5e\u6027,\u5728\u6253\u5f00\u7684\u754c\u9762\u7684:\u6b64\u8fde\u63a5\u4f7f\u7528\u4e0b\u5217\u9879\u76ee\u4e2d\u62c9\u53f3\u8fb9\u7684\u6eda\u52a8\u6761\u5230\u6700\u4e0b\u9762\u5c31\u4f1a\u770b\u5230INTERNET\u534f\u8bae(TCP/IP)\u4e86,\u53e6\u5916(\u70b9\u4e2d\u5b83,\u4e0b\u4e00\u5398\u7c73\u5904\u53f3\u8fb9\u6709\u5b83\u7684\u5c5e\u6027\u4e86)
\u4f60\u5efa\u4e00\u4e2a\u865a\u62df\u670d\u52a1\u5668\u8bd5\u8bd5\u3002\u5982\u679c\u865a\u62df\u670d\u52a1\u5668\u4e5f\u662f\u8fd9\u79cd\u60c5\u51b5\uff0c\u53ef\u80fd\u662f\u4f60\u7a0b\u5e8f\u4e2d\u65ad\u5f00\u4e0e\u670d\u52a1\u5668\u4e86\u3002\u5982\u679c\u865a\u62df\u670d\u52a1\u5668\u6ca1\u95ee\u9898\uff0c\u4f30\u8ba1\u5c31\u662f\u4f60\u73b0\u5728\u7684\u670d\u52a1\u5668\u6709\u95ee\u9898\u3002
用户中途更换了IP地址,说明用户切换到备用IP地址,或者重新获取到新的IP地址。在切换到备用IP地址的情况,如果备用IP地址已经通过SIP建立连接,则会直接切换过去,会话可以不中断;但是“TCP连接”是否中断取决于原来的IP地址是否还有效,如果有效且并未释放,则TCP连接保持,否则TCP连接会中断。另外,SIP呼叫一般是基于UDP的,这里的TCP连接猜测是指应用的连接,所以在不中断的情况下,即使目的IP地址改变了,原来的用户地址如果一直有效,还是可以保持连接和服务的。
对于重新获取新IP地址的情况,因为SIP连接中断了,在用户获取到新IP地址之后重新发起呼叫,所以相关的连接都会断开之后重连。
DNS的情况,因为是与DNS服务器连接,所以如果更换了IP地址,需要通知DNS服务器进行更新。因为DNS服务器更新并不可能做到实时,所以在IP地址在DNS服务器切换的这段时间里,其它访问者连不到用户IP,所以呼叫就断开了。切换完成之后,用户需要重新连接到新的IP。这种情况与上面的“重新获取新IP地址”的情况类似。
理论上,用到了IP层,修改IP是要重连的,一般你用的是内网地址,通过nat到外网的某台主机,你内网中对外nat的路由中,保存着你的ip和端口的映射,这时你的ip改变了,映射表要更新,就会导致你之前的链接的实效,如果nat路由能够支持通过端口号重建ip和端口的映射,并且能够在短时间内(会话间隙)恢复,那就可以支持。但这是不可能的!
同样的,DNS是通过第三方绑定ip地址,你的ip绑定了,你的dns服务器上(花生壳)也需要修改,你依然可以用域名访问,但是肯定会重连的,你的ip改变了,对应的在nat路由上的映射表要发生改变。你通过域名访问,查询cache,查不到,就会转到你的DNS服务器上查询,一般由你的ISP提供,它会通过代理查询,没有命中 ,就会从顶级域名开始迭代查询,最终转换成ip,写入cache。这是DNS原理。
绛旓細sip鐢佃瘽鍩轰簬IP鍗忚锛宻ip璇濇満鍙互骞夸箟鐞嗚В涓篒P璇濇満锛岄氫織璇村氨鏄綉缁滅數璇濄俿ip鐢佃瘽鍔熻兘锛歐IFI鐩存嫧銆佸洖鎷ㄣ佺煭淇°俿ip鐢佃瘽鍜屾櫘閫氱數璇濈殑鍖哄埆锛氫竴銆佺綉缁滀笉鍚 1銆乻ip鐢佃瘽锛氭湁WIFI缃戠粶锛屾棤SIM鍗′篃鑳芥嫧鎵撱佷篃鑳芥帴鍚數璇濓紝瀹跺涵閲岀湡姝f嫢鏈夋棤绾挎棤鏈堢鐨勫骇鏈恒2銆佹櫘閫氱數璇濓細闇瑕佹湁SIM鍗★紝闇瑕佹湁绉诲姩缃戠粶銆備簩銆浣跨敤涓...
绛旓細瀹炵幇浜掕仈缃戦氫俊鐨勫熀纭鏄IP鍗忚锛鑰孲IP IP鍒欐槸IP鍗忚涓婄殑涓灞傛湇鍔°係IP IP閫氬父鐢12涓暟瀛楃粍鎴愶紝鍏舵牸寮忎负xxx.xxx.xxx.xxx銆傞氳繃杩欐牱鐨勬暟瀛楀湴鍧锛岀綉缁滆澶囧彲浠ヨ繘琛屼簰鐩搁氫俊锛屽疄鐜版暟鎹紶杈撱係IP IP鐨勫嚭鐜颁负浜掕仈缃戦氫俊鎻愪緵浜嗘洿鍔犻珮鏁堛佸揩閫熺殑鏈嶅姟銆傚湪缃戠粶閫氫俊涓锛孲IP IP鏄潪甯搁噸瑕佺殑锛屼篃鏄笉鍙垨缂虹殑涓閮ㄥ垎...
绛旓細鐢ㄦ埛璁よ瘉鐨刬d銆SIP鏄竴涓綉缁鍗忚锛屼富瑕佺敤浜庨煶瑙嗛浼氳瘽鐨勩係IP鏈嶅姟鍣ㄥ氨鏄叿鏈夊缓绔嬭繖绉嶄細璇濆姛鑳界殑鏈嶅姟鍣ㄣ俀Q搴旇鐢ㄧ殑杩欎釜鍗忚銆備綘鐢≦Q璇煶鑱婂ぉ锛屽綋鐐瑰嚮瑙嗛閫氳瘽鐨勬椂鍊欙紝浣犵殑鐢佃剳浼氬悜QQ鐨勬湇鍔″櫒锛堜篃灏辨槸SIP鏈嶅姟鍣級鍙戦佷綘鎯宠窡璋佽棰戣亰澶╃殑淇℃伅锛屾湇鍔″櫒浼氬府浣犳壘鍒伴偅涓汉鐨勪綅缃紝鎶婁綘鎯冲共鐨勪簨鎯呭憡璇夊畠銆傚...
绛旓細SIP鏄釜鍗忚锛浣嗘槸鎸変綘鐨勯棶棰樻潵鐪嬶紝浣犻渶瑕佺殑鏄竴涓猄IP璐﹀彿锛屽彲浠ュ湪缃戜笂鎵惧埌SIP璐﹀彿锛屾敞鍐屽彲鍏嶈垂锛屼絾鏄鏋滆鐢ㄦ潵鎵撶數璇濓紝灏遍渶瑕佸厖閽辫繘鍘绘墠鍙互浣跨敤銆
绛旓細\x0d\x0aSIP鏄被浼间簬HTTP鐨勫熀浜庢枃鏈殑鍗忚銆係IP鍙互鍑忓皯搴旂敤鐗瑰埆鏄珮绾у簲鐢ㄧ殑寮鍙戞椂闂淬傜敱浜庡熀浜IP鍗忚鐨凷IP鍒╃敤浜咺P缃戠粶锛屽浐瀹氱綉杩愯惀鍟嗕篃浼氶愭笎璁よ瘑鍒癝IP鎶鏈浜庝粬浠殑娣辫繙鎰忎箟銆俓x0d\x0a浣跨敤SIP锛屾湇鍔℃彁渚涘晢鍙互闅忔剰閫夋嫨鏍囧噯缁勪欢銆備笉璁哄獟浣撳唴瀹瑰拰鍙備笌鏂规暟閲锛岀敤鎴閮藉彲浠ユ煡鎵惧拰鑱旂郴瀵规柟銆係IP瀵逛細璇濊繘琛...
绛旓細SIP鐨勬剰鎬濅负浼氳瘽鍒濆鍗忚銆傚畠鏄敤浜庡垱寤恒佺鐞嗗拰缁堟澶氬獟浣撲細璇濈殑閫氫俊鍗忚銆備互涓嬫槸璇︾粏鐨勮В閲婏細SIP鏄竴绉嶅熀浜庢枃鏈殑鍗忚锛岀敤浜庡湪IP缃戠粶涓疄鐜拌闊炽佽棰戝拰鏁版嵁閫氫俊鐨勪細璇濇帶鍒跺姛鑳姐傚畠涓昏鐢ㄤ簬VoIP鐜涓紝鐢ㄤ簬澶勭悊閫氫俊浼氳瘽鐨勫垵濮嬪缓绔嬭繃绋嬨SIP鍗忚鍏佽鐢ㄦ埛閫氳繃缃戠粶璁惧杩涜閫氫俊銆傚叾鏍稿績鍔熻兘鍖呮嫭寤虹珛浼氳瘽銆佸鐞嗗懠鍙...
绛旓細SIP锛鍗充細璇濆垵濮鍗忚锛鍏舵牳蹇冪洰鏍囨槸淇冭繘鍦ㄤ簰鑱旂綉涓婂疄鐜伴珮绾х數璇濇湇鍔$殑鏍囧噯鍖栥傞殢鐫IP鐢佃瘽閫愭笎鎴愪负鍟嗕笟閫氫俊鐨勪富娴侊紝浣滀负涓嬩竴浠g綉缁滐紙NGN锛夊崗璁腑涓嶅彲鎴栫己鐨勪竴閮ㄥ垎锛孲IP鐨勫紩鍏ユ槸涓轰簡纭繚杩欑鎶鏈殑椤哄埄婕旇繘銆傚畠鍩轰簬璇稿SMTP鍜孒TTP绛夋垚鐔熷崗璁瀯寤猴紝涓昏璐熻矗寤虹珛銆佷慨鏀瑰拰缁堟鍩轰簬IP缃戠粶鐨鐢ㄦ埛涔嬮棿鐨勯氫俊锛屽鐢佃瘽...
绛旓細RTP 绛夊涓崗璁傞殢鐫璁$畻鏈虹瀛︽妧鏈殑杩涙锛屽熀浜庡垎缁勪氦鎹㈡妧鏈殑IP鏁版嵁缃戠粶浠ュ叾渚挎嵎鎬у拰寤変环鎬э紝鍙栦唬浜嗗熀浜庣數璺氦鎹㈢殑浼犵粺鐢佃瘽缃戝湪閫氫俊棰嗗煙鐨勬牳蹇冨湴浣嶃係IP鍗忚浣滀负搴旂敤灞備俊浠ゆ帶鍒跺崗璁紝涓哄绉嶅嵆鏃堕氫俊涓氬姟鎻愪緵瀹屾暣鐨勪細璇濆垱寤哄拰浼氳瘽鏇存敼鏈嶅姟锛岀敱姝锛孲IP鍗忚鐨勫畨鍏ㄦу浜庡嵆鏃堕氫俊鐨勫畨鍏ㄨ捣鐫鑷冲叧閲嶈鐨勪綔鐢ㄣ
绛旓細婕旂ず鏈哄瀷锛氬崕涓篗ateBook X绯荤粺鐗堟湰锛歸in10 sip鍗忚鏄細璇濆彂璧峰崗璁紝鏄敱IETF鍒跺畾鐨勫濯掍綋閫氫俊鍗忚銆係IP鏄竴涓簲鐢ㄥ眰鐨勪俊浠ゆ帶鍒跺崗璁紝鐢ㄤ簬鍒涘缓銆佷慨鏀瑰拰閲婃斁涓涓垨澶氫釜鍙備笌鑰呯殑浼氳瘽锛涘畠鏄竴绉嶆簮浜庝簰鑱旂綉鐨IP璇煶浼氳瘽鎺у埗鍗忚锛屽叿鏈夌伒娲汇佹槗浜庡疄鐜般佷究浜庢墿灞曠瓑鐗圭偣銆傜壒鐐癸細SIP 鐨勪竴涓噸瑕佺壒鐐规槸瀹冧笉瀹氫箟瑕佸缓绔...
绛旓細sip鏄熀鏈鍗忚锛鍍廝sip锛osip绛夐兘鏄痵ip鐨勪竴绉嶅疄鐜帮紝绫讳技涓庡皝瑁呬簡涓灞傦紝鏂逛究浣跨敤銆