{"componentChunkName":"component---src-templates-blog-post-js","path":"/Computer-Network/2020-10-13-네트워크-UDP/","result":{"data":{"site":{"siteMetadata":{"title":"Hun's Footsteps 🥷","author":"전여훈","siteUrl":"https://jeonyeohun.netlify.app","comment":{"disqusShortName":"","utterances":"jeonyeohun/jeonyeohun.github.io"},"sponsor":{"buyMeACoffeeId":"jeonyeohun"}}},"markdownRemark":{"id":"4e9606e3-9596-5fa2-b2d7-6311b70c2c33","excerpt":"참고도서: 컴퓨터 네트워킹 : 하향식 접근. 7판. James F. Kurose , Keith W.Ross 지음 비연결형 트랜스포트(UDP) UDP는 다중화와 역다중화 기능, 그리고 오류검사기능을 제외하고는 IP(인터넷 프로토콜, 네트워크 계층의 프로토콜)과 크게 다르지 않다. UDP는 연결을 시도하는에 비연결형 트랜스포트라고 불린다. UDP는 데이터 무결성을 보장하지도 않고, 데이터가 순서대로 수신되는 것도 보장하지 않는다. UDP의 간단한 오류검사 기능 역시도 IPv…","html":"<p><em><strong>참고도서: 컴퓨터 네트워킹 : 하향식 접근. 7판. James F. Kurose , Keith W.Ross 지음</strong></em></p>\n<h2 id=\"비연결형-트랜스포트udp\" style=\"position:relative;\"><a href=\"#%EB%B9%84%EC%97%B0%EA%B2%B0%ED%98%95-%ED%8A%B8%EB%9E%9C%EC%8A%A4%ED%8F%AC%ED%8A%B8udp\" aria-label=\"비연결형 트랜스포트udp permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>비연결형 트랜스포트(UDP)</h2>\n<ul>\n<li>UDP는 다중화와 역다중화 기능, 그리고 오류검사기능을 제외하고는 IP(인터넷 프로토콜, 네트워크 계층의 프로토콜)과 크게 다르지 않다.</li>\n<li>UDP는 연결을 시도하는<code class=\"language-text\">두 프로세스 사이에 핸드쉐이크를 사용하지 않기 때문</code>에 비연결형 트랜스포트라고 불린다.</li>\n<li>UDP는 데이터 무결성을 보장하지도 않고, 데이터가 순서대로 수신되는 것도 보장하지 않는다.</li>\n<li>UDP의 간단한 오류검사 기능 역시도 IPv4에서는 잘 사용하지 않고 IPv6에서 의무적으로 사용하고 있다.</li>\n<li>그래도 UDP는 연결하는 시간이 걸리지 않기 때문에 속도가 빠르다는 장점때문에 실시간 미디어를 사용하는 어플리케이션에서는 여전히 많이 사용되고 있다.</li>\n<li>또 UDP는 한번에 많은 호스트가 함께 연결될 수 있는 <code class=\"language-text\">point-2-point connection</code>이다.</li>\n<li>\n<p>대표적으로 UDP를 사용하는 서비스들은 다음과 같다.</p>\n<ul>\n<li>RIP(Routing Information Protocol) : 30초마다 자신의 라우팅 정보를 인접한 라우터에 계속 전달하는 서비스를 위해 UDP를 사용한다.</li>\n<li>DNS : DNS의 많은 query &#x26; response 를 수행하기 위햐서는 연결 설정 시간을 요구하지 않는 UDP가 적합하다. DNS 에서 사용하는 query 와 response 는 그 크기가 작기 때문에 더더욱 UDP를 사용하는 것이 유리하다. 만약 패킷 손실이 발생한다고 하더라도 그냥 다시 보내주는것이 더 빠를 수 있기 떄문이다.</li>\n<li>SNMP(Simple Network Management Protocol) : 네트워크에 이상이 있을 때 그 정보를 받아오는 프로토콜인데, 이 역시도 UDP가 가지는 overhead 가 더 작기 때문에 UDP를 사용한다.</li>\n</ul>\n</li>\n</ul>\n<h3 id=\"udp-세그먼트-구조\" style=\"position:relative;\"><a href=\"#udp-%EC%84%B8%EA%B7%B8%EB%A8%BC%ED%8A%B8-%EA%B5%AC%EC%A1%B0\" aria-label=\"udp 세그먼트 구조 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>UDP 세그먼트 구조</h3>\n<p><img src=\"https://i.stack.imgur.com/ptiIA.jpg\" alt=\"UDP-segement-structure\"></p>\n<ul>\n<li>UDP 세그먼트는 8바이트의 헤더와 데이터로 구성된다.</li>\n<li>8바이트의 헤더는 <code class=\"language-text\">출발지 포트번호, 목적지 포트번호, 헤더와 데이터의 총 길이, 체크섬</code> 필드를 가지고 각 2바이트씩 할당받는다.</li>\n<li>\n<p>이 헤더들 중에서 체크섬 필드는 세그먼트의 헤더, 데이터, 그리고 <code class=\"language-text\">Pseudo-header</code> 의 값들의 합으로 이루어진 16비트 이진수이다.</p>\n<ul>\n<li>Pseudo-header 는 실제로 데이터 전송에는 사용되지 않지만 오류를 검사하는 체크섬을 계산하기 위해서만 사용된다.</li>\n<li>Pseudo-header 에는 출발지 ip주소, 목적지 ip주소, UDP 프로토콜 번호(17), UDP의 총 길이를 포함한다.</li>\n<li>체크섬은 계산은 세그먼트의 헤더, 데이터, 수도헤더를 모두 더한 뒤에 1의 보수를 취해 만들어진다.</li>\n<li>이렇게 만들어진 체크섬은 세그먼트에 담겨 목적지로 전달되고, 목적지는 체크섬과 모든 데이터들의 덧셈 결과의 합이 모두 1이 되는지 확인하고 만약 각 비트에 0이 하나라도 있다면 오류로 판단한다.</li>\n</ul>\n</li>\n</ul>","frontmatter":{"title":"[네트워크] 비연결형 트랜스포트 : UDP","date":"October 13, 2020"}}},"pageContext":{"slug":"/Computer-Network/2020-10-13-네트워크-UDP/","previous":{"fields":{"slug":"/Computer-Network/2020-10-13-네트워크-TCP/"},"frontmatter":{"title":"[네트워크] 연결지향형 트랜스포트: TCP","category":"Computer-Network","draft":false}},"next":{"fields":{"slug":"/Computer-Network/2020-11-10-네트워크-Internet-Protocol/"},"frontmatter":{"title":"[네트워크] IP : Internet Protocol - IPv4","category":"Computer-Network","draft":false}}}},"staticQueryHashes":["2486386679","3128451518"]}