Computer Network 11

서브넷 (Subnet)

Disclaimer : 동서대학교 임효택 교수님 강의 자료입니다. 본 강의는 링크 에서 수강하실수 있습니다. 원래 IP주소는 네트워크 ID와 호스트 ID로 단지 두 단계 계층만을 허용한다. 따라서 인터넷을 구성하고 있는 네트워크의 수가 상대적으로 적을 때는 충분하나, 현재 인터넷은 수 천, 수 만의 네트워크를 포함하며 여기에 수 백 만의 호스트가 연결되어 있다. TCP/IP 주소 방식을 유지하며 엄청나게 많은 네트워크를 수용하기 위해 서브넷의 개념이 고안되었다. 서브넷을 이용하는 경우 호스트 ID 부분을 서브넷 ID 와 호스트 ID 로 나누어 생각한다. IP주소의 호스트 ID 중 몇 비트는 서브넷 ID로서 지정할 수 있다. 클래스 B의 경우 호스트 아이디가 16비트이므로, 이 16비트 중 일부를 서브넷에..

Computer Network 2022.02.04

[Network Layer] IP, Routers, NAT ...

[네트워크 레이어 1번째 수업] * 네트워크 레이어 : 트랜스포트 레이어에서 전달받은 패킷을 IP패킷으로 감싸서 목적지까지의 경로에 있는 다른 라우터들로 전달하는 레이어이다. 라우터의 역할 1. Forwarding : 어떠한 목적지까지 갈 때 가는 그 행위 자체를 의미한다. router-local 한 것이며, 보통 하드웨어로 구현한다. 2. Routing : 어떠한 목적지까지 갈 때 가기 위한 경로를 정하는 행위이다. network-wide 한 것이며 소프트웨어로 구현된다. IP주소 : 아이피 주소의 정확한 정의는 머신이 갖고 있는 "네트워크 인터페이스"이다. 머신 자체를 지징하는 것이 아니다. 즉, 호스트 하나가 여러개의 IP주소를 가족 있을 수 있는 것. 대표적으로 라우터가 있다. 라우터는 인풋 인터..

Computer Network 2020.10.13

TCP 혼잡제어 (Congestion Control)

*원래는 TCP의 전반적인 특성들과 함께 정리하려 했으나, 양이 많을 것 같아서 별도의 포스트로 분리함. TCP 의 혼잡 제어 (Congestion Control) 네트워크 상황은 쉽게 예측할 수 없다. 모두의 행동 양상에 따라서 동적으로 결정되기 때문이다. 따라서 네트워크 상황을 미리 어느정도 예측하고, 이에 기반하여 송신측에서 데이터를 보내는 양을 조절해야 한다. 혼잡제어가 발생하는 세 가지 시나리오를 살펴보자. 시나리오 1 : 두 개의 송신자와 무한 버퍼를 갖는 하나의 라우터. 두 송신자는 단일 홉을 공유하는 연결을 가진다. 이 때 TCP 계층이 오류 복구, 흐름 제어, 혼잡 제어를 전혀 수행하지 않으며 헤더에 의한 오버헤드는 전혀 발생하지 않는다고 가정하자. 이러한 상황에서 유일한 제약은 (버퍼의..

Computer Network 2020.07.27

[Lecture 7, 8] TCP Service

[강의 내용만 대략적으로 요약] 1. TCP 의 전반적인 특징에 대하여 * point-to-point : 항상 단일 송신자와 단일 수신자 사이의 점대점 연결이다. 하나의 송신자가 여러 수신자에게 데이터를 전송하는 멀티캐스팅은 불가능하다. * 데이터의 순서를 보장한다. * pipelined : 한꺼번에 많은 메시지를 보낼 수 있다. * full-duplex : 양쪽에서 이야기한다. * 하나의 소켓마다 별도의 TCP 를 갖고 (송신버퍼 수신버퍼, 그리고 데이터 전송과 관련된 여러 자료구조 및 변수들) 동작한다. * TCP 가 전송하는 세그먼트의 크기? TCP 명세에는 TCP가 자신이 편한대로 세그먼트의 데이터를 전송한다고 기술되어있다. 세그먼트의 크기는 최대 세그먼트 크기로 제한되고, 이는 통상적으로 150..

Computer Network 2020.07.15

[Lecture 6] RDT : Pipelined Protocols

신뢰적인 데이터 전송 (이어짐) 이전 강의에서는 송신자와 수신자 간 하나의 세그먼트만 주고 받는 상황에서의 신뢰적인 데이터 전달을 논의했었다. 하지만 실제 전송계층에서는 전송-후-대기 프로토콜을 사용하지 않고 파이프라인된 프로토콜을 사용한다. 데이터를 한꺼번에 많이 보내고, 보낸 것들에 대한 응답 또한 한꺼번에 받는 방식이다. 파이프라이닝을 이용해 세그먼트를 전달하면 송신자의 이용률이 증가하여 성능향상에 도움이 된다. 파이프라이닝 방식을 사용하면 다음과 같은 사항들이 요구된다. * 순서번호의 범위가 커져야 한다. 각각의 전송중인 패킷은 유일한 순서번호를 가져야 하고, 거기에 전송 중이고 확인응답이 안된 여러 패킷이 있을지도 모른다. * 프로토콜의 송신측과 수신측은 한 패킷 이상을 버퍼링 해야한다. 송신자..

Computer Network 2020.07.03

[Lecture 5] RDT : Reliable Data Transfer

TCP가 윗단의 어플리케이션에게 제공하는 서비스는 신뢰적인 데이터 전송의 채널을 만들어 주는 것이다. 신뢰적인 채널에서는 전송된 데이터가 손상되거나, 손실되지 않는다(0에서 1로, 혹은 1에서 0으로 바뀌지 않음). 그리고 모든 데이터는 전송된 순서대로 전달된다. 이러한 서비스 추상화를 구현하는 것은 신뢰적인 데이터 전송 프로토콜(reliable data transfer protocol)의 의무이다. 하지만 TCP 아래의 계층들의 신뢰성이 떨어져 이 작업이 어려워진다. 신뢰적인 데이터 전송 프로토콜의 송신자 측면과 수신자 측면을 점진적으로 개발해 나가자. 하부 채널에서는 패킷의 순서를 바꾸지 않는다고 가정한다. 위의 그림은 데이터 전송 프로토콜에 대한 인터페이스를 나타낸다. 송신측은 rdt_send()호..

Computer Network 2020.07.02

[Lecture 4-2] Transport Layer (1) : Overview & UDP

네트워크 통신이 이루어지는 계층 구조 1. Application Layer Socket 을 통해서 Message 를 전송 2. Transport Layer Segment 의 Data 에 Message 를 담고 전송에 필요한 부가정보를 Header 에 담음 3. Network Layer Packet 의 Data 에 Segment 를 담고 전송에 필요한 부가정보를 Header 에 담음 4. Link Layer Frame 의 Data 에 Packet 을 담고 전송에 필요한 부가정보를 Header 에 담음 각 계층 구조별로 자신과 같은 계층 상의 상대방만 보일 뿐, 다른 계층에 대해서는 신경쓰지 않는다. 레이어별로 전송 단위가 달라지는 것을 눈여겨 볼 것. Transport Layer 의 역할 전송 계층은 서로..

Computer Network 2020.06.29

[Lecture 4-1] Application Layer 마무리 : Mail Server

메일은 크게 세개의 컴포넌트가 작동하여 서비스 된다 * User Agents : Outlook 같은 메일 어플리케이션 * Mail Servers : Gmail 서버, Naver Mail 서버 등 * Simple Mail Transfer Protocol, SMTP 프로토콜 유저는 이메일을 보내거나 받는 주체로, 메일 서버를 거쳐서 메일을 받게 된다. 이 때 사용되는 프로토콜은 SMTP 프로토콜이다. HTTP를 사용하지 않고 별도의 프로토콜을 갖고 있는 이유는 메일은 받는 쪽이 항상 온라인이 아닌 경우가 많기 때문이다. 따라서 보내는 사람과 받는 사람 중간에 메일 서버들이 메일을 갖고 있다가, 사용자에게 보여주는 방식을 취해야 한다. 요컨대 HTTP는 메시지를 클라이언트 측에서 당겨오는 Pull 방식을 취하..

Computer Network 2020.06.27

[Lecture 2] Application Layer (2) : Domain Name System

DNS : 인터넷의 디렉터리 서비스 사람을 주민등록 번호로 식별할 수 있는 것과 마찬가지로, 인터넷 호스트는 Host Name 으로 식별할 수 있다. www.facebook.com 과 같은 호스트 네임은 기억하기 쉬워 사용자에게 편리하다. 하지만 호스트 네임을 통해 곧바로 IP주소를 얻을 수 없다. IP주소를 얻으려면 DNS 서버에서 해당 호스트 네임을 조회하여 주소를 찾아와야 한다. DNS 라는 용어의 이해 DNS 는 다음과 같이 두가지 의미로 이해할 수 있다. 1. DNS 서버들의 계층구조로 구현된 분산 데이터베이스 2. 호스트가 분산 데이터베이스로 질의하도록 허락하는 어플리케이션 계층 프로토콜 DNS서버는 주로 BIND (Berkely Internet Name Domain) 소프트웨어를 수행하는 유..

Computer Network 2020.06.27