통신/네트워크 프로토콜 18

네프 후기

이번 학기는 정말 정말 힘들었다..... 20학점 6전공 정말 지옥같았음 ㅋㅋㅋ  데이터 통신을 열심히 해놓아서 솔직히 네트워크 프로토콜이 정말 천사같은 과목이였고, 데통과 맥락이 비슷해서 쉽게 느껴졌다.하지만 시험도 쉬울 것이라고 생각한 건 나의 실수..ㅋㅋ 시험이 생각보다 어려웠다. 나의 최종 네프 성적은 A.... 만족하지는 않지만 그렇게 아쉽지도 않다.  그리고 데통 듣고 난 후에는 느껴지는게 많았는데, 네프는 뭔가 느껴지는게 적은 것 같다. 비슷한 과목이라 그런가..???  아무튼 이번 학기 끝나서 너무너무 행복하고 담학기에도 20학점 들어야지........조기졸업 해보고 싶음 ㅎㅎ

Application layer

애플리케이션 계층의 개요애플리케이션 계층은 네트워크 응용 프로그램을 개발하고 배포할 수 있도록 지원하는 계층이다. 애플리케이션은 전송 계층을 통해 통신하며, 네트워크 코어 장치에 대한 별도의 소프트웨어를 개발할 필요가 없다. 이를 통해 애플리케이션 개발이 빠르고 효율적으로 이루어진다.애플리케이션 구조애플리케이션은 주로 두 가지 구조를 가진다:클라이언트-서버 구조: 서버는 항상 켜져 있고 고정된 IP 주소를 가지고 있으며, 클라이언트는 서버와 통신한다. 클라이언트는 서버와 직접적으로 통신하지만, 클라이언트들끼리는 통신하지 않는다.P2P 구조: 항상 켜져 있는 서버가 없으며, 피어 간의 직접 통신이 이루어진다. 새로운 피어가 참여하면 새로운 서비스 용량이 추가되고, 관리가 복잡해진다.프로세스 간 통신프로세스..

Congestion control

혼잡 제어의 원리혼잡은 네트워크에서 너무 많은 데이터가 너무 빠르게 전송되어 네트워크가 처리하지 못할 때 발생한다. 혼잡 제어는 이러한 네트워크 과부하를 막기 위한 메커니즘이다. 혼잡은 패킷 손실(라우터에서 버퍼 오버플로) 또는 지연(라우터 버퍼에 큐가 쌓이는 현상)으로 나타난다.TCP 혼잡 제어: 가산적 증가와 곱셈적 감소 TCP는 전송 속도를 증가시키며 사용 가능한 대역폭을 탐색하고, 손실이 발생할 때까지 창 크기를 증가시킨다.가산적 증가: 패킷 손실이 없을 때, 매 RTT마다 혼잡 윈도우(cwnd)를 1 MSS만큼 증가시킨다.곱셈적 감소: 패킷 손실이 발생하면, 혼잡 윈도우 크기를 절반으로 줄인다.이 과정은 톱니형으로 나타나며, 대역폭을 탐색하고 손실을 처리하는 특성이 있다.혼잡 윈도우(Conges..

TCP(2) - 연결과 해제

TCP 연결 설정 TCP는 3-way 핸드셰이크 방식을 사용하여 연결을 설정한다. 이 과정에서 클라이언트와 서버는 초기 순서 번호를 교환한다.SYN: 클라이언트가 서버에 연결 요청을 보내고, 이를 SYN 패킷이라고 한다.SYN-ACK: 서버는 클라이언트의 요청에 응답하고, 이를 SYN-ACK 패킷이라고 한다.ACK: 클라이언트는 서버의 응답을 확인하고 연결이 설정된다.3-way 핸드셰이크 예시클라이언트가 서버에 연결을 요청할 때 SYN 패킷을 보내며, 서버는 SYN-ACK 패킷으로 응답한다. 이후 클라이언트가 ACK 패킷을 보내면 연결이 완료된다.TCP 연결 종료 TCP 연결은 4-way 핸드셰이크를 통해 종료된다. 클라이언트와 서버는 FIN 플래그를 사용해 각자의 연결을 독립적으로 종료할 수 있다.클라..

TCP(1) - 구조와 특징

개요TCP는 전송 계층에서 신뢰성 있는 데이터 전송을 제공하는 프로토콜이다. 패킷을 순서대로 전송하고, 오류 발생 시 재전송을 통해 데이터의 무결성을 보장한다. 연결 기반 프로토콜로, 데이터 전송 전에 연결을 설정하며, 연결 종료 시에는 명시적으로 연결을 종료한다.TCP의 특성스트림 전송: TCP는 데이터를 연속된 바이트 스트림으로 처리하며, 데이터의 경계를 구분하지 않는다.양방향 통신: TCP는 양방향 통신을 지원하여, 송신자와 수신자가 모두 데이터를 전송할 수 있다.오류 제어: TCP는 오류 제어를 통해 전송 중 발생한 오류를 탐지하고, 손상된 데이터를 재전송한다.흐름 제어: TCP는 수신자의 데이터 처리 능력에 맞춰 송신 속도를 조절한다.혼잡 제어: 네트워크 혼잡을 방지하기 위해 송신 속도를 조절하..

UDP

개요UDP(User Datagram Protocol)는 전송 계층에서 사용되는 비연결형 프로토콜로, 가벼운 헤더와 빠른 처리를 제공한다. 신뢰성 있는 데이터 전송(TCP)보다는 성능을 우선시하며, 멀티미디어 스트리밍, DNS, SNMP와 같은 응용에 적합하다.UDP 서비스비연결형 서비스: 연결 설정이나 종료 과정을 거치지 않고, 각 사용자 데이터그램을 독립적으로 처리한다.프로세스 간 통신: 소켓을 통해 IP 주소와 포트 번호를 사용해 데이터를 전송하며, 데이터를 적절한 프로세스에 전달한다.오류 제어: 검사합(Checksum)을 통해 오류를 검출할 수 있지만, 복구 메커니즘이 없어 오류가 발생한 데이터는 폐기된다.흐름 제어: 흐름 제어를 지원하지 않으며, 윈도우 메커니즘도 없다.혼잡 제어: 혼잡 제어 기능..

TransportLayer

개요전송층은 네트워크층과 응용층 사이에 위치하며, 응용층에 서비스를 제공하는 역할을 한다. 전송층은 네트워크로부터 서비스를 제공받고, 이를 이용하여 응용 프로그램 간의 데이터 전송을 처리한다.Internet 전송층 프로토콜신뢰성 있는, 순서대로 전달: TCP네트워크 혼잡 제어수신 측 흐름 제어연결 설정신뢰성 없는, 순서대로 전달되지 않는: UDP"최선의 노력"으로 동작하는 IP 확장제공되지 않는 서비스:지연 보장대역폭 보장TCP, UDP 가 핵심전송층 서비스프로세스 간 통신전송층은 응용층의 개체인 프로세스 간 통신을 제공한다. 전송층의 주 역할은 메시지를 적절한 프로세스로 전달하는 것이다.주소 체계: 포트 번호클라이언트와 서버 간 프로세스 간 통신에서 각 프로세스는 고유한 포트 번호로 식별된다.포트 번호..

Routing Algorithms

네트워크 계층: 제어 플레인네트워크 계층에서 제어 플레인은 라우팅 알고리즘을 통해 네트워크의 각 노드가 패킷을 어디로 보내야 할지 결정하는 역할을 한다. 전통적인 라우팅 알고리즘과 소프트웨어 정의 네트워킹(SDN)으로 나눌 수 있다.라우팅 알고리즘라우팅 알고리즘의 목표는 출발지에서 목적지로 데이터를 전달할 때 최적의 경로(최소 비용 경로)를 결정하는 것이다. 이 과정에서 "좋은" 경로는 최소 비용, 가장 빠른 경로, 또는 혼잡이 가장 적은 경로를 의미한다.그래프 추상화네트워크는 그래프로 추상화할 수 있다. 각 라우터는 그래프의 노드로, 라우터 간의 링크는 그래프의 간선으로 표현된다. 간선의 비용은 대역폭, 혼잡도, 또는 고정된 값에 따라 결정된다.라우팅 알고리즘의 분류링크 상태 알고리즘: 모든 라우터가 ..

IP(2) - 데이터 그램 구조와 단편화 및 검사합

IP 데이터그램데이터그램 구조IP 데이터그램은 헤더와 데이터로 구성된다.헤더: 패킷 전송에 필요한 제어 정보를 담고 있으며, 길이는 20바이트에서 60바이트이다.데이터: 실제 전송되는 데이터이다.데이터그램 헤더 필드버전(Version): IP 프로토콜의 버전을 나타낸다. (IPv4의 경우 4)헤더 길이(HLEN): 헤더의 길이를 나타내며, 4바이트 단위로 계산된다.서비스 유형(TOS): 데이터그램의 우선순위와 서비스 성격을 나타낸다.전체 길이(Total Length): 데이터그램 전체의 길이를 나타낸다.식별자(Identification): 단편화된 패킷을 식별하는 필드로, 모든 단편이 동일한 식별자를 가진다.플래그(Flags): 데이터그램이 단편화 여부를 제어한다.단편화 옵셋(Fragment Offset..

IP(1) - 주소지정과 클래스

IP의 개념IP(Internet Protocol)는 네트워크 계층에서 데이터 전송을 담당하는 프로토콜로, 패킷을 발신지에서 수신지까지 전달하는 기능을 한다.IP는 비연결형 프로토콜이며, 신뢰성 없는 전송을 제공한다. 이는 패킷이 손실될 수 있음을 의미하며, 데이터 재전송을 보장하지 않는다.상위 계층에서 오류 제어 및 흐름 제어 기능을 제공하는 TCP와 같은 프로토콜이 IP의 부족한 부분을 보완한다.주소 지정물리 주소 (Physical Address)MAC 주소: 네트워크 인터페이스 카드(NIC)에 내장된 고유 식별자로, 로컬 네트워크(LAN)에서 장치를 구분하는 데 사용. 48비트로 구성되며, 16진수 형식으로 표현. ex) 00:14:22:01:23:45유니캐스트(Unicast): 특정 장치에 데이터를..