Microsoft MVP성태의 닷넷 이야기
스마트 클라이언트에서 원치 않는 패킷 송수신 문제... [링크 복사], [링크+제목 복사],
조회: 12387
글쓴 사람
테드 (jeidee at naver.com)
홈페이지
첨부 파일
 

안녕하세요.
스마트 클라이언트에 관해 쓰신 글을 읽고 회사 프로젝트에 적용해 개발중에 있습니다.

FarPoint사의 윈폼용 스프레드 컨트롤을 새로운 윈폼 컨트롤에 얹어 ASP.NET에서 사용중인데,
실제 웹서버에 사이트를 올리고 사용해보니,
셀을 이동할때마다 웹서버와 패킷을 송수신하여 성능이 급격히 떨어지는 문제가 발생했습니다.
네트워크 모니터로 모니터링해보니 셀을 이동할때 계속해서 웹서버와 패킷을 주고 받고 있었습니다.
짧은 소견으로는 스마트클라이언트와 웹서버간에 연결을 유지하기 위한 패킷으로도 생각되지만 잘 모르겠습니다.
웹페이지가 정상적으로 출력된 상태에서 오프라인을 시키면 당연히 웹서버와 패킷송수신이 없으므로
빠른속도록 셀 이동이나 편집이 가능해집니다.
하지만 다시 연결하면 패킷송수신이 시작되면서 속도가 급격히 떨어지구요.
조언 부탁드려요.


네트워크 모니터로 캡춰한 내용의 일부는 다음과 같습니다.

첫번째 유형:
클라이언트 -----------> 웹서버
    HTTP: GET Request (from client using port 3634)
    HTTP: Request Method = GET
    HTTP: Uniform Resource Identifier = /iexplore.exe.config
    HTTP: Protocol Version = HTTP/1.1
    HTTP: Accept = */*
    HTTP: Accept-Encoding = gzip, deflate
    HTTP: User-Agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR
    HTTP: Host = ***.***.***.***
    HTTP: Connection = Keep-Alive
    ....

웹서버 -----------> 클라이언트
    .....
    HTTP: Response (to client using port 3634)
    HTTP: Protocol Version = HTTP/1.1
    HTTP: Status Code = Not found
    HTTP: Reason = Object Not Found
    HTTP: Server = Microsoft-IIS/5.0
    HTTP: Date = Fri, 22 Jul 2005 04:23:28 GMT
    HTTP: Connection = close
    HTTP: Content-Length = 3937
    HTTP: Content-Type = text/html
    HTTP: Data: Number of data bytes remaining = 1297 (0x0511)
    .....

두번째 유형:
클라이언트 ------------> 웹서버

TCP: .A.R.., len: 0, seq:3986502330-3986502330, ack:3662085292, win: 0, src: 3634 dst: 80
    TCP: Source Port = 0x0E32
    TCP: Destination Port = Hypertext Transfer Protocol
    TCP: Sequence Number = 3986502330 (0xED9D32BA)
    TCP: Acknowledgement Number = 3662085292 (0xDA46FCAC)
    TCP: Data Offset = 20 (0x14)
    TCP: Reserved = 0 (0x0000)
    TCP: Flags = 0x14 : .A.R..
        TCP: ..0..... = No urgent data
        TCP: ...1.... = Acknowledgement field significant
        TCP: ....0... = No Push function
        TCP: .....1.. = Reset the connection
        TCP: ......0. = No Synchronize
        TCP: .......0 = No Fin
    TCP: Window = 0 (0x0)
    TCP: Checksum = 0xC54E
    TCP: Urgent Pointer = 0 (0x0)
00000: 00 08 9F 02 AC 86 00 0F EA C0 8C 38 08 00 45 00 ..Ÿ.¬†..êÀŒ8..E.
00010: 00 28 F9 06 40 00 80 06 1D 15 C0 A8 00 64 D2 76 .(ù.@.€...À¨.dÒv
00020: 51 31 0E 32 00 50 ED 9D 32 BA DA 46 FC AC 50 14 Q1.2.Pí2ºÚFü¬P.
00030: 00 00 C5 4E 00 00 ..ÅN..


TCP: ....S., len: 0, seq:3292276979-3292276979, ack: 0, win:65535, src: 3635 dst: 80
    TCP: Source Port = 0x0E33
    TCP: Destination Port = Hypertext Transfer Protocol
    TCP: Sequence Number = 3292276979 (0xC43C28F3)
    TCP: Acknowledgement Number = 0 (0x0)
    TCP: Data Offset = 28 (0x1C)
    TCP: Reserved = 0 (0x0000)
    TCP: Flags = 0x02 : ....S.
        TCP: ..0..... = No urgent data
        TCP: ...0.... = Acknowledgement field not significant
        TCP: ....0... = No Push function
        TCP: .....0.. = No Reset
        TCP: ......1. = Synchronize sequence numbers
        TCP: .......0 = No Fin
    TCP: Window = 65535 (0xFFFF)
    TCP: Checksum = 0xA2B8
    TCP: Urgent Pointer = 0 (0x0)
    TCP: Options
        TCP: Maximum Segment Size Option
            TCP: Option Type = Maximum Segment Size
            TCP: Option Length = 4 (0x4)
            TCP: Maximum Segment Size = 1460 (0x5B4)
        TCP: Option Nop = 1 (0x1)
        TCP: Option Nop = 1 (0x1)
        TCP: SACK Permitted Option
            TCP: Option Type = Sack Permitted
            TCP: Option Length = 2 (0x2)

웹서버 ----------------> 클라이언트

HTTP: Response (to client using port 3634)
    HTTP: Data: Number of data bytes remaining = 1460 (0x05B4)
00000: 00 0F EA C0 8C 38 00 08 9F 02 AC 86 08 00 45 00 ..êÀŒ8..Ÿ.¬†..E.
00010: 05 DC EE 90 40 00 78 06 29 D7 D2 76 51 31 C0 A8 .Üî@.x.)×ÒvQ1À¨
00020: 00 64 00 50 0E 32 DA 46 FC AC ED 9D 32 BA 50 10 .d.P.2ÚFü¬í2ºP.
00030: 42 C0 CB CD 00 00 0A 09 2F 2F 66 6F 72 20 64 69 BÀËÍ....//for di
00040: 73 70 6C 61 79 2C 20 77 65 20 6E 65 65 64 20 74 splay, we need t
00050: 6F 20 73 6B 69 70 20 61 66 74 65 72 20 68 74 74 o skip after htt
00060: 70 3A 2F 2F 2C 20 61 6E 64 20 67 6F 20 74 6F 20 p://, and go to
00070: 74 68 65 20 6E 65 78 74 20 73 6C 61 73 68 0D 0A the next slash..
00080: 09 64 69 73 70 6C 61 79 72 65 73 75 6C 74 3D 44 .displayresult=D
00090: 6F 63 55 52 4C 2E 73 75 62 73 74 72 69 6E 67 28 ocURL.substring(
000A0: 70 72 6F 74 6F 63 6F 6C 49 6E 64 65 78 20 2B 20 protocolIndex +
000B0: 33 20 2C 73 65 72 76 65 72 49 6E 64 65 78 29 3B 3 ,serverIndex);
000C0: 0D 0A 0D 0A 09 49 6E 73 65 72 74 45 6C 65 6D 65 .....InsertEleme
000D0: 6E 74 41 6E 63 68 6F 72 28 75 72 6C 72 65 73 75 ntAnchor(urlresu
000E0: 6C 74 2C 20 64 69 73 70 6C 61 79 72 65 73 75 6C lt, displayresul
000F0: 74 29 3B 0D 0A 7D 0D 0A 0D 0A 66 75 6E 63 74 69 t);..}....functi
00100: 6F 6E 20 48 74 6D 6C 45 6E 63 6F 64 65 28 74 65 on HtmlEncode(te
00110: 78 74 29 0D 0A 7B 0D 0A 20 20 20 20 72 65 74 75 xt)..{.. retu
00120: 72 6E 20 74 65 78 74 2E 72 65 70 6C 61 63 65 28 rn text.replace(
00130: 2F 26 2F 67 2C 20 27 26 61 6D 70 27 29 2E 72 65 /&/g, '&amp').re
00140: 70 6C 61 63 65 28 2F 27 2F 67 2C 20 27 26 71 75 place(/'/g, '&qu
00150: 6F 74 3B 27 29 2E 72 65 70 6C 61 63 65 28 2F 3C ot;').replace(/<
00160: 2F 67 2C 20 27 26 6C 74 3B 27 29 2E 72 65 70 6C /g, '&lt;').repl
00170: 61 63 65 28 2F 3E 2F 67 2C 20 27 26 67 74 3B 27 ace(/>/g, '&gt;'
00180: 29 3B 0D 0A 7D 0D 0A 0D 0A 66 75 6E 63 74 69 6F );..}....functio
00190: 6E 20 54 61 67 41 74 74 72 69 62 28 6E 61 6D 65 n TagAttrib(name
001A0: 2C 20 76 61 6C 75 65 29 0D 0A 7B 0D 0A 20 20 20 , value)..{..
001B0: 20 72 65 74 75 72 6E 20 27 20 27 2B 6E 61 6D 65 return ' '+name
001C0: 2B 27 3D 22 27 2B 48 74 6D 6C 45 6E 63 6F 64 65 +'="'+HtmlEncode
001D0: 28 76 61 6C 75 65 29 2B 27 22 27 3B 0D 0A 7D 0D (value)+'"';..}.
001E0: 0A 0D 0A 66 75 6E 63 74 69 6F 6E 20 50 72 69 6E ...function Prin
001F0: 74 54 61 67 28 74 61 67 4E 61 6D 65 2C 20 6E 65 tTag(tagName, ne
00200: 65 64 43 6C 6F 73 65 54 61 67 2C 20 61 74 74 72 edCloseTag, attr
00210: 69 62 2C 20 69 6E 6E 65 72 29 7B 0D 0A 20 20 20 ib, inner){..
00220: 20 64 6F 63 75 6D 65 6E 74 2E 77 72 69 74 65 28 document.write(
00230: 20 27 3C 27 20 2B 20 74 61 67 4E 61 6D 65 20 2B '<' + tagName +
00240: 20 61 74 74 72 69 62 20 2B 20 27 3E 27 20 2B 20 attrib + '>' +
00250: 48 74 6D 6C 45 6E 63 6F 64 65 28 69 6E 6E 65 72 HtmlEncode(inner
00260: 29 20 29 3B 0D 0A 20 20 20 20 69 66 20 28 6E 65 ) );.. if (ne
00270: 65 64 43 6C 6F 73 65 54 61 67 29 20 64 6F 63 75 edCloseTag) docu
00280: 6D 65 6E 74 2E 77 72 69 74 65 28 20 27 3C 2F 27 ment.write( '</'
00290: 20 2B 20 74 61 67 4E 61 6D 65 20 2B 27 3E 27 20 + tagName +'>'
002A0: 29 3B 0D 0A 7D 0D 0A 0D 0A 66 75 6E 63 74 69 6F );..}....functio
002B0: 6E 20 55 52 49 28 68 72 65 66 29 0D 0A 7B 0D 0A n URI(href)..{..
002C0: 20 20 20 20 49 45 56 65 72 20 3D 20 77 69 6E 64 IEVer = wind
002D0: 6F 77 2E 6E 61 76 69 67 61 74 6F 72 2E 61 70 70 ow.navigator.app
002E0: 56 65 72 73 69 6F 6E 3B 0D 0A 20 20 20 20 49 45 Version;.. IE
002F0: 56 65 72 20 3D 20 49 45 56 65 72 2E 73 75 62 73 Ver = IEVer.subs
00300: 74 72 28 20 49 45 56 65 72 2E 69 6E 64 65 78 4F tr( IEVer.indexO
00310: 66 28 27 4D 53 49 45 27 29 20 2B 20 35 2C 20 33 f('MSIE') + 5, 3
00320: 20 29 3B 0D 0A 0D 0A 20 20 20 20 72 65 74 75 72 );.... retur
00330: 6E 20 28 49 45 56 65 72 2E 63 68 61 72 41 74 28 n (IEVer.charAt(
00340: 31 29 3D 3D 27 2E 27 20 26 26 20 49 45 56 65 72 1)=='.' && IEVer
00350: 20 3E 3D 20 27 35 2E 35 27 29 20 3F 0D 0A 20 20 >= '5.5') ?..
00360: 20 20 20 20 20 20 65 6E 63 6F 64 65 55 52 49 28 encodeURI(
00370: 68 72 65 66 29 20 3A 0D 0A 20 20 20 20 20 20 20 href) :..
00380: 20 65 73 63 61 70 65 28 68 72 65 66 29 2E 72 65 escape(href).re
00390: 70 6C 61 63 65 28 2F 25 33 41 2F 67 2C 20 27 3A place(/%3A/g, ':
003A0: 27 29 2E 72 65 70 6C 61 63 65 28 2F 25 33 42 2F ').replace(/%3B/
003B0: 67 2C 20 27 3B 27 29 3B 0D 0A 7D 0D 0A 0D 0A 66 g, ';');..}....f
003C0: 75 6E 63 74 69 6F 6E 20 49 6E 73 65 72 74 45 6C unction InsertEl
003D0: 65 6D 65 6E 74 41 6E 63 68 6F 72 28 68 72 65 66 ementAnchor(href
003E0: 2C 20 74 65 78 74 29 0D 0A 7B 0D 0A 20 20 20 20 , text)..{..
003F0: 50 72 69 6E 74 54 61 67 28 27 41 27 2C 20 74 72 PrintTag('A', tr
00400: 75 65 2C 20 54 61 67 41 74 74 72 69 62 28 27 48 ue, TagAttrib('H
00410: 52 45 46 27 2C 20 55 52 49 28 68 72 65 66 29 29 REF', URI(href))
00420: 2C 20 74 65 78 74 29 3B 0D 0A 7D 0D 0A 0D 0A 2F , text);..}..../
00430: 2F 2D 2D 3E 0D 0A 3C 2F 73 63 72 69 70 74 3E 0D /-->..</script>.
00440: 0A 0D 0A 3C 62 6F 64 79 20 62 67 63 6F 6C 6F 72 ...<body bgcolor
00450: 3D 22 46 46 46 46 46 46 22 3E 0D 0A 0D 0A 3C 74 ="FFFFFF">....<t
00460: 61 62 6C 65 20 77 69 64 74 68 3D 22 34 31 30 22 able width="410"
00470: 20 63 65 6C 6C 70 61 64 64 69 6E 67 3D 22 33 22 cellpadding="3"
00480: 20 63 65 6C 6C 73 70 61 63 69 6E 67 3D 22 35 22 cellspacing="5"
00490: 3E 0D 0A 0D 0A 20 20 3C 74 72 3E 0D 0A 20 20 20 >.... <tr>..
004A0: 20 3C 74 64 20 61 6C 69 67 6E 3D 22 6C 65 66 74 <td align="left
004B0: 22 20 76 61 6C 69 67 6E 3D 22 6D 69 64 64 6C 65 " valign="middle
004C0: 22 20 77 69 64 74 68 3D 22 33 36 30 22 3E 0D 0A " width="360">..
004D0: 09 3C 68 31 20 73 74 79 6C 65 3D 22 43 4F 4C 4F .<h1 style="COLO
004E0: 52 3A 30 30 30 30 30 30 3B 20 46 4F 4E 54 3A 20 R:000000; FONT:
004F0: 31 33 70 74 2F 31 35 70 74 20 76 65 72 64 61 6E 13pt/15pt verdan
00500: 61 22 3E 3C 21 2D 2D 50 72 6F 62 6C 65 6D 2D 2D a"><!--Problem--
00510: 3E 20 C0 CC 20 C6 E4 C0 CC C1 F6 B8 A6 20 C3 A3 > &Agrave;&Igrave; Æ&auml;&Agrave;&Igrave;&Aacute;&ouml;¸&brvbar; &Atilde;&pound;
00520: C0 BB 20 BC F6 20 BE F8 BD C0 B4 CF B4 D9 2E 3C &Agrave;&raquo; ¼&ouml; ¾ø½&Agrave;´&Iuml;´&Ugrave;.<
00530: 2F 68 31 3E 0D 0A 20 20 20 20 3C 2F 74 64 3E 0D /h1>.. </td>.
00540: 0A 20 20 3C 2F 74 72 3E 0D 0A 0D 0A 20 20 3C 74 . </tr>.... <t
00550: 72 3E 0D 0A 20 20 20 20 3C 74 64 20 77 69 64 74 r>.. <td widt
00560: 68 3D 22 34 30 30 22 20 63 6F 6C 73 70 61 6E 3D h="400" colspan=
00570: 22 32 22 3E 20 3C 66 6F 6E 74 20 73 74 79 6C 65 "2"> <font style
00580: 3D 22 43 4F 4C 4F 52 3A 30 30 30 30 30 30 3B 20 ="COLOR:000000;
00590: 46 4F 4E 54 3A 20 39 70 74 2F 31 31 70 74 20 B1 FONT: 9pt/11pt ±
005A0: BC B8 B2 22 3E C3 A3 B0 ED 20 C0 D6 B4 C2 20 C6 ¼¸²">&Atilde;&pound;°&iacute; &Agrave;&Ouml;´&Acirc; Æ
005B0: E4 C0 CC C1 F6 B0 A1 20 BB E8 C1 A6 B5 C7 BE FA &auml;&Agrave;&Igrave;&Aacute;&ouml;°¡ &raquo;&egrave;&Aacute;&brvbar;&micro;&Ccedil;¾&uacute;
005C0: B0 C5 B3 AA 20 C0 CC B8 A7 C0 CC 20 BA AF B0 E6 °&Aring;³ª &Agrave;&Igrave;¸§&Agrave;&Igrave; º&macr;°æ
005D0: B5 C7 BE FA B0 C5 B3 AA 20 C0 CF BD C3 C0 FB C0 &micro;&Ccedil;¾&uacute;°&Aring;³ª &Agrave;&Iuml;½&Atilde;&Agrave;&ucirc;&Agrave;
005E0: B8 B7 CE 20 BB E7 BF EB C7 D2 ¸·&Icirc; &raquo;&ccedil;¿&euml;&Ccedil;&Ograve;








[최초 등록일: ]
[최종 수정일: 7/22/2005]


비밀번호

댓글 작성자
 



2005-08-16 11시14분
ko-KR 관련 리소스를 찾는 요청을 보내서 그런 겁니다.
폼 로드시에 관련 리소스를 찾지 않도록 언어속성을 "중립" 으로 설정하십시오.

techsharer
2005-08-18 01시51분
[테드] 감사합니다.
헌데,
언어속성을 중립으로 할때 웹폼페이지의 culture를 변경해야 하는지, 윈폼(컨트롤)의 culture를 변경해야 하는지 모르겠네요.
그리고 중립이라는 속성은 지정하지 않는다는 의미인지요...
죄송한데 한번만더 도움을...
[guest]
2005-08-18 02시12분
[테드] 중립이란 의미를 찾아봤는데 국가지정을 하지 않을 경우(예를 들면 ko-KR은 고정, ko는 중립) 중립이 된다는 것은 알겠는데 웹폼페이지의 culture를 ko로 지정한다거나 web.config의 globalization의 culture를 ko로 지정한다거나 하는 것은 지원하지 않는군요. 즉, 고정언어속성만 지정할 수 있게끔 되어 있는것 같습니다.
기본값("")또한 고정언어속성이라 중립으로 지정할 수 있는 방법이 있는 것인지도 궁금하네요.
[guest]

... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...
NoWriterDateCnt.TitleFile(s)
5575베라11/23/202114072event handler 관련 문의 [2]
5574박원웅11/22/202114807닷넷 프레임워크 산출물의 배포시 해당 환경에 프레임워크 버전이 설치되어 있지 않는 경우를 고려한 배포방법은? [3]
5573mijin11/21/202113591System.NullReferenceException 에 대한 질문 [1]
5572김현진11/21/202113660C# list.Clear() 호출에 대한 문의 드립니다. [4]
5571한예지 donator11/18/202113669무설치 프로그램 원리가 궁금합니다. [2]
5570초보11/16/202114253주식데이터 초당 수신 건수를 구하고 있는데 처리속도가 느려서요 [2]
5569카짜프로...11/14/202115795381페이지 UTC에대한 언급이 그리니치 천문대 시간으로 되어있는게 맞나요? [1]
5568카짜프로...11/14/202115699그림 5.20, 그림 5.22 언급 오류 [1]
5567Edun11/2/202113846쿼리문을 코드로 어떻게 처리할 수 있을까요? [2]
5566민성10/26/202113372Linq에 관해서 [1]
5565pass...10/25/202114588wpf에서 Cefsharp를 AnyCPU로 작업 했는데 실행이 되지 않습니다. [4]
5564초보10/21/202112841오버라이드 관련 질문드립니다 [2]
5562서지훈10/20/202112766win32 api 문의 드립니다. (EnableMenuItem) [5]
5561Edun10/15/202113989도와주세요!! 팝업 띄우는 더블클릭 이벤트!! 부탁드립니다 ㅠㅠ [4]파일 다운로드1
5560Edun10/13/202114110C#초보자 개념이해 도와주세요!! [4]
5559최가운10/5/202114844C# debugging 중에 Thread Pool Worker들이 사라지는데요 [3]
5558옥코드9/29/202115214안녕하세요! EntityFramework Linq 질문 드리겠습니다. [4]
5557임기성9/16/202114923웹 사이트(IIS)가 오류로 인하여 빈번하게 죽는 이슈 문의 [1]
5556hjlee9/13/202113875visual studio 설치 없이 csi.exe (C# interactive) tool을 설치할 수 있을까요? [2]
5555이성열 donator9/2/202113579C# 런타임(Reflection)에서 소스코드에 입력한 함수설명(Summary)을 가져올 수 있을까요? [3]
5554농상9/2/202115074enum 원소값이 중복인 경우 출력 [4]
5553shdt...8/31/202112988제너릭을 new로 할당했는데 null인 경우가 존재하나요? [1]
5552hjsh...8/30/202113643C# 폼 - 마우스가 다른 버튼 위를 움직일 때도 폼의 페인트핸들러가 호출되는 것이 맞나요? [2]
5551하나다라마8/27/202113241뽀모도로 타이머 개선사항 [1]
5550하영8/27/202116811SqlDataReader 관련 질문입니다. [8]
5549책 감사...8/23/202118975C# 9.0 책 오타 [1]
... [16]  17  18  19  20  21  22  23  24  25  26  27  28  29  30  ...