
Data Link Layer 유/무선의 Physical Layer를 통해 송/수신하는 데이터들에 대해서 reliable한 통신을 위한 link를 제공한다. 통신과정에서 필연적으로 error등의 잡음이 발생할 수 밖에 없는데 이를 제어해준다. Network Layer가 Router to Router 간 통신이였다면 Data Link Layer는 데이터가 hop by hop으로 전송되는 모든 단일 링크를 관리한다. 라우터 사이에도 여러 node가 존재할 수 있으며 각 링크를 책임지게 된다. 따라서 출발지에 도착지로 패킷을 보낼 때 IP주소는 그대로인 반면 MAC 주소는 계속해서 변하게 된다. Alice -> Bob으로 데이터를 송신할 때 Alice는 먼저 Bob의 IP주소를 DNS 프로토콜을 이용해서 알아낸..

Host의 IP 주소의 할당 방식은 두가지가 존재한다. 고정 IP 주소 방식으로 직접 IP, 서브넷 마스크, 게이트웨이를 설정하는 방식이다. DHCP를 이용해서 동적으로 필요할 때 IP 주소를 할당받는 방식이다. 일반 사용자들은 대부분 2번을 사용하며 학교나 관공서에서 1번을 사용한다. 1번을 사용하면 IP추적을 통해 특정 컴퓨터를 특정할 수 있다. DHCP 프로토콜 사용의 장점 사용을 할 때만 할당받아서 사용하게 된다. 고정적으로 컴퓨터마다 일일히 IP를 구성해줄 필요가 없다. 호스트(노트북, 폰) 등의 이동성을 지원해준다. 이동한 위치에서 새로 IP를 발급해주면 된다. DHCP host가 네트워크 망에 접속할 DHCP 서버와의 통신을 통해서 사용 가능한 IP를 묻고 사용 가능한 IP 주소를 받아서 H..

Network Layer 프로토콜 Routing Protocol - 경로 탐색 및 설정, Autonomous System 내 라우팅 프로토콜, AS 간 라우팅 프로토콜 제공 IP 프로토콜 - Addressing Convention 정의, Datagram 구조 정의, 패킷 핸들링 convention 정의 ICMP 프로토콜 - error 리포팅, router signaling IP 프로토콜 IP는 인터넷 프로토콜 아키텍쳐의 중심 허리에 해당하는 부분으로 상위 프로토콜, 하위 프로토콜 사이에 존재한다. 네트워크 계층에 존재하는 오직 하나의 프로토콜로 현대 인터넷 구조를 TCP/IP 계층이라고도 한다. 기능 IP 프로토콜은 Unrealiable, Connectionless, Best effort 한 특징이 있다..

Network Layer 기능 Packetizing 출발지에서 네트워크 계층의 패킷안에 payload를 Encapsulation 한다. 도착치에서 네트워크 계층의 패킷에서 payload를 Decapsulation 한다. payload를 출발지 -> 도착지로 전달할 때 해당 내용물을 사용하거나 변경하지 않는다. 이는 마치 우편물을 배송할 때 중간에 내용물을 확인하거나 바꾸지 않는것과 동일하다. Routing/Forwarding Routing: 출발지로부터 도착지까지 패킷이 이동할 경로를 결정한다. Fowarding: 라우터의 input 적절한 라우터의 output으로 패킷을 이동시킨다. 서울에서 부산까지의 경로가 여러개 존재한다. 이때 특정 분기점에 위치했을때 경부고속도로로 보낼지, 다른 고속도로로 보낼지..

Window Control TCP는 Reliable한 통신을 위해서 수신측과 네트워크의 상태를 파악해서 전송량을 조절하는 기법이 존재한다. 이를 조절하는 기법을 Window Control이라고 한다. 여기서 수신측의 혼잡도를 확인하고 조절하는 것이 Flow Control, 네트워크의 혼잡도를 유추해서 조절하는 것이 Congestion Control이다. RTT Round Trip Time의 약자로 Data가 수신측에 전송되어 ACK를 수신측에서 받을 때 까지 걸린 총 시간을 지칭한다. 이 시간이 길 수록 데이터 전송량은 줄어드어 전송량과 반비례 관계를 갖는다. Window ACK의 수신 없이도 보낼 수 있는 패킷의 최대 크기를 말한다. Window가 1000이라면 ACK를 수신받은 후 ACK의 수신 없이..

Automatic Repeat reQuest 수신측과 송신측의 데이터 전송과정에서 패킷의 오류나 손실이 발생 시 reliable한 통신을 위해서 해당 패킷을 다시 보내게 된다. 이때 어떻게 해당 패킷을 인지해서 다시 보낼지에 대한 방법이다. Stop-and-Wait, Go-Back-N, Selective-Repeat, 3-duplicate-ACK 방식 등이 존재한다. ARQ가 존재하기 때문에 TCP는 Relialbe한 통신이 될 수 있다. Stop and Wait 하나의 프레임을 보내고 ACK가 올 때까지 기다리는 방식이다. -> 프레임이 손실되거나 손상을 입은 경우 ACK는 오지 않게되고 해당 프레임에 대한 Timer 만료로 인해 재전송이 가게 된다. 제대로 온 프레임에 대해서만 ACK를 보내고 그외에..

Why TCP? Q. 전송 계층에는 UDP, TCP 두개의 대표적인 프로토콜을 사용하는데 왜 나누고 어떤 경우에 TCP를 사용할까? A. UDP는 빠른 데이터 송/수신을 위해서, TCP는 Reliable한 통신을 하기 위해서 사용한다. Mechanism for Reliable Data Transfer Sequence Number 패킷의 순서를 정렬하기 위한 용도로 사용한다. 송신자에서 수신자로 흘러가는 패킷에 숫자를 매기는 용도이다. CheckSum 전송되는 패킷 데이터 bit의 오류를 검증하기 위해 사용한다. Error Detect 용도, FEC & CRC를 이용해서 에러를 찾고, 메꾸고, 유효성 검사를 한다. Acknowledgement 송신측에서 보낸 패킷을 수신측이 제대로 받은 경우 응답을 위해 ..

Transport Layer Transport Layer is responsible for the delivery of a message from one process to another. 3계층과 뗄수없는 매우 밀접한 관계에 있는 계층이다. NAT의 경우 IP & PORT 의 조합으로 통신을 하게 된다. Network Layer : Host 간 통신 Transport Layer : network layer에 의존한 프로세스 간 통신 IP 주소 + Port 번호 -> Socket Address가 된다. 소켓 통신은 콘센트를 소켓에 꽂듯이 직접 연결해서 통신하는 방법이다. 트랜스포트 계층 역활 전송파트 Message를 전송할 만한 segments로 Dividing해서, Numbering하고, Sending..

Transport Layer (전송계층) 전송계층은 사용자 데이터를 상대 호스트의 상대 프로세스까지 전댈해주는 역활을 한다. 프로세스는 여러개가 동시에 실행될 수 있는데 Web 서버의 프로세스 클라이언트의 프로세스가 데이터를 주고 받기 위한 책임을 진다. 여러 프로세스 중 원하는 프로세스를 특정하기 위해서는 식별자를 통해 프로세스를 구별해야 하는데 이를 위해 사용하는 것이 Port Number (포트 번호)이다. Port Number 포트번호 실제 이름대로 항구의 번호를 의미한다. 원하는 도착지 (ex. 부산항)까지는 잘 왔으니 자신이 전달해줄 선착장을 구별해주는 용도이다. Port Number (Transport Layer 주소) Port 번호는 16bit로 2^16개가 존재한다. (65536개) 0 ..

ARP ARP는 3계층의 프로토콜 (정확히 하면 2.5계층 프로토콜, 연관이 없는 계층 사이에서 징검다리 역활을 해주는 프로토콜) 데이터가 전달되어야 할 목적지 장비의 3계층 주소(IP)를 가지고 있는 중계 장비가 2계층의 서비스를 이용하려면 해당 목적지의 2계층 주소를 알아야 가능하다. 이때 2계층 주소를 알아내는 것이 ARP의 주요 기능이다. 2계층 주소를 이용해서 3계층 주소를 알아내는 것을 RARP라고 한다. Q. 3계층 주소와 2계층 주소를 다르게 한 이유는? Q. 하나의 주소로 두 계층의 기능을 모두 수행하지 않는 이유는? A. 각 계층별로 맡은 임무에 따라 주소의 역활이 다르기 때문이다. 2계층은 좁은 지역 (수백 m) 내에서 상대적으로 한정적인 수의 장비 간 데이터 전달이 목적 3계층은 넓..
네트워크 연결 구분 LAN : Loca Area Network MAN : Metro Area Network WAN : Wide Area Network LAN Local Area Network로 홈 네트워크용과 사무실용 네트워크처럼 소규모의 네트워크를 말한다. 먼거리를 통신할 필요가 없어서 스위치와 같은 간단한 장비로 연결된 네트워크를 LAN이라 부른다. 현재 대부분 이더넷 기반의 전송 기술을 사용한다. WAN Wide Area Network로 멀리 떨어진 LAN간 연결을 해주거나, 인터넷에 접속하기 위한 네트워크를 말한다. 대부분 통신사업자 (ISP)로 부터 회선을 임대해서 사용한다. 네트워크 회선 인터넷 회선 인터넷 연결을 위해 통신 사업자와 연결하는 회선이다. 아파트등 회선을 공유해서 사용하는 경우가..
프로토콜 기존에는 네트워크를 이루는 다양한 프로토콜이 존재했다. 따라서 어떤 프로토콜을 사용해서 통신을 할지 정하고 어느 협회에서 만든 프로토콜이냐에 따라 성능/구조상의 차이도 많았다. 하지만 현재에는 이러한 산재된 프로토콜 기술들이 이더넷 - TCP/IP 기반의 프로토콜 스택으로 변경되고 있다. 물리적 측면에서 이더넷이, 논리적 측면에서 TCP/IP 프로토콜 스택이 널리 사용된다. 이전에는 네트워킹, 컴퓨팅 환경이 매우 열약하였으므로 최대한 효율적으로 통신하기 위해 0과 1로 이뤄진 2진 수 비트 기반의 프로토콜이 만들어졌다. 하지만 현재에는 그렇지 않으므로 애플리케이션 레벨의 프로토콜은 비트 기반이 아닌 문자 기반의 프로토콜을 많이 사용하고 있다. 예를들어 HTTP, SMTP, STOMP 등을 들 수..
- Total
- Today
- Yesterday