Computer Science/Computer Networking21 [Computer Networking] The Link Layer and LANs : addressing, ARP MAC addresses 실제로 링크 계층 주소를 가진 것은 호스트나 라우터가 아닌 호스트나 라우터의 어댑터(네트워크 인터페이스)다. 다수의 네트워크 인터페이스를 갖고 있는 호스트나 라우터는 여러 개의 링크 계층 주소를 갖게 된다. 링크 계층 스위치는 호스트나 라우터를 연결해주는 인터페이스에 링크 계층 주소를 할당받지 않는다. 그 이유는 링크 계층 스위치가 호스트와 라우터 간에 데이터그램을 전달하는 일을 하기 때문이다. 링크 계층 주소는 LAN address, physical address, 또는 MAC address라고도 알려져 있다. 대부분의 랜의 경우 MAC 주소는 길이가 6바이트이며, 따라서 (2^8)^6 = 2^48개만큼의 사용 가능한 랜 주소가 있다. 6바이트의 주소는 주로 '1A-2F-B.. 2025. 1. 10. [Computer Networking] The Link Layer and LANs : Multiple Access Protocols Multiple access links, protocol 브로드캐스트 링크(broadcast link): 동일한 하나의 공유된 브로드캐스트 채널에 다수의 송신 노드 및 수신 노드가 연결된다. 여기서 브로드캐스트라는 용어는 임의의 한 노드가 프레임을 전송하면 채널이 그 프레임을 브로드캐스트해서 다른 모든 노드가 그 프레임의 복사본을 수신하기 때문에 사용된 것이다. 이더넷과 무선 랜은 브로드캐스트 링크 기술의 대표적인 예다. 데이터 링크 계층에서 가장 중요한 문제 중의 하나는 다중 접속 문제(multiple access problem), 즉 '다수의 송수신 노드들의 공유되는 브로드캐스트 채널로의 접속을 조정하는 문제'이다. Multiple access protocols 다중 접속 프로토콜(mutiple .. 2025. 1. 10. [Computer Networking] Network Layer : ICMP, SNMP Internet Control Message Protocol (ICMP)ICMP는 호스트와 라우터가 서로 간에 네트워크 계층 정보를 주고받기 위해 사용된다.가장 전형적인 사용 형태는 오류 보고다.ICMP는 종종 IP의 한 부분으로 간주되지만, ICMP 메시지가 IP 데이터그램에 담겨 전송되므로 구조적으로는 IP 바로 위에 있다. 즉, TCP나 UDP 세그먼트가 IP 페이로드로 전송되는 것처럼 ICMP 메시지도 IP 페이로드로 전송된다.ICMP 메시지에는 타입과 코드 필드가 있고, ICMP 메시지의 발생 원인이 된 IP 데이터그램의 헤더와 첫 8바이트를 갖는다.ICMP 메시지가 오류 상태를 알리기 위해서만 사용되는 것은 아니다. 한 호스트에서부터 세계 어느 호스트로의 경로라도 추적할 수 있는 Tracero.. 2025. 1. 10. [Computer Networking] Network Layer : Software Defined Networking (SDN) Control Plane Why a logically centralized control plane?- 보다 쉬운 네트워크 관리: 라우터 오류 구성 방지, 트래픽 흐름의 유연성 향상- 테이블 기반 포워딩 -> 네트워크를 프로그램: 중앙 집중형으로 테이블을 계산하여 배포 Components of SDN controller 통신 계층: SDN 컨트롤러와 제어받는 네트워크 장치들 사이의 통신. 컨트롤러와 제어받는 장치들 간의 통신은 southbound 라고 알려진 컨트롤러 인터페이스를 넘나는다.네트워크 전역 상태 관리 계층: 네트워크 호스트와 링크, 스위치, 그리고 SDN으로 제어되는 다른 장치들에 대한 최신 정보/상태 관리.네트워크 제어 애플리케이션 계층과의 인터페이스: 컨트롤러는 northbound 인터페이스를 통해 네트워크 제어.. 2025. 1. 8. [Computer Networking] Network Layer : BGP (ISP 간의 라우팅) BGP (Border Gateway Protocol) AS 간 라우팅 프로토콜(Inter-AS Routing Protocol)은 여러 AS 간의 협력이 수반되므로 통신하는 AS들은 같은 AS 간 라우팅 프로토콜을 수행해야만 한다. 실제로 인터넷의 모든 AS는 경계 게이트웨이 프로토콜(Border Gateway Protocol, BGP)이라고 부리는 동일한 AS 간 라우팅 프로토콜을 사용한다. BGP의 역할 어떤 AS와 그 AS내의 임의의 라우터를 가정해보자. 모든 라우터는 포워딩 테이블을 갖고있고 이는 도착한 패킷을 출력 링크로 내보내는 과정에서 중추적인 역할을 한다. 같은 AS 내에 있는 목적지에 대해서는 라우터의 포워딩 테이블 엔트리들이 해당 AS의 AS 내부 라우팅 프로토콜에 의해 결정된다. 목.. 2025. 1. 4. [Computer Networking] Network Layer : OSPF (AS 내부 라우팅) 네트워크를 동일한 라우팅 알고리즘을 수행하는 동종의 라우터 집합으로 간주하는 관점은 다음의 두 가지 이유 때문에 지나치게 단순하다고 할 수 있다. - 확장: 라우터의 수가 증가함에 따라 라우팅 정보의 통신, 계산, 저장에 필요한 오버헤드가 걷잡을 수 없이 증가한다.- 관리 자율성: 인터넷은 ISP들의 네트워크이고 각 ISP는 자신의 라우터들로 구성된 네트워크를 관리한다. ISP는 일반적으로 자신의 네트워크를 원하는 대로 운용하거나, 네트워크 내부 구성을 외부에 감추기를 원한다. 이 두 가지 문제는 라우터들을 자율 시스템(autonomous system, AS)으로 조직화하여 해결할 수 있다. 각 AS는 동일한 관리 제어하에 있는 라우터의 그룹으로 구성된다. 같은 AS 안에 있는 라우터들은 동일한 라.. 2025. 1. 2. [Computer Networking] Network Layer : Routing Protocols Per-router control plane- 라우터 별 제어 : 라우팅 알고리즘들이 모든 라우터 각각에서 동작하는 경우 Software-Defined Networking (SDN) control plane- 논리적 중앙 집중형 제어 : 논리적 중앙 집중형 컨트롤러가 포워딩 테이블을 작성하고 이를 모든 개별 라우터가 사용할 수 있도록 배포한 경우 (EX. SDN) Routing Protocols- 라우팅 프로토콜 : 송신자부터 수신자까지 라우터의 네트워크를 통과하는 최적(일반적으로 최소비용 경로)의 경로를 결정하는 것 Link-State Routing Algorithm- 네트워크 전체에 대한 완전한 정보를 가지고 출발지와 목적지 사이의 최소 비용 경로를 계산하는 중앙 집중형 라우팅 알고리즘이다.- 데이크.. 2024. 8. 29. [Computer Networking] Network Layer : Generalized Forwarding (일반화된 포워딩) Match + Action 각각의 라우터는 포워딩 테이블(흐름 테이블)을 가지고 있다.- "Match Plus Action" : 도착하는 패킷의 비트를 매칭하고 액션을 취하는 것- "Generalized Forwarding" : 매칭된 패킷의 헤더 필드들에 의해 액션이 정해진다 (Drop, Copy, Modify, Log 등) Fowarding(Flow) table- Flow : 헤더 필드에 의해 정의되는 것.- Packet-handling rules1. match : 패킷 헤더 필드의 패턴 값에 대해 매칭2. actions : 매칭된 패킷에 대해 drop/forward/modify/send to controller3. priority : 중복되는 패턴을 구분하기 위해 사용4. counters : 처리.. 2024. 8. 27. [Computer Networking] Network Layer : IP (2) (The Internet Protocol) NAT : Network Address Translation- SOHO(small office, home office)가 장치를 연결하기 위해 LAN을 설치할 때 마다 ISP는 모든 SOHO의 IP장치를 수용할 수 있는 IP 주소 범위를 할당해야 한다.- 네트워크가 현저하게 커지면 큰 주소 블록이 할당되어야 하는데, 이미 ISP가 SOHO 네트워크의 해당 주소 범위에 인접한 부분을 할당해 버렸다면, 또 특정 홈 네트워크 소유자가 IP 주소가 어떻게 관리되는지 알고자 한다면 NAT으로 주소를 할당할 수 있다.- 위 그림은 NAT 가능 라우터의 운영을 보여준다. - 로컬 네트워크의 모든 디바이스는 그들의 로컬 네트워크에서만 사용되는 모두 같은 사설 네트워크 주소를 갖는다. - 이는 provider ISP가 .. 2024. 8. 24. [Computer Networking] Network Layer : IP (1) (The Internet Protocol) IPv4 Datagram Format- ver : IP 프로토콜의 버전- head. len : 헤더의 길이- length : 총 데이터그램의 길이- 16-bit identifier, flags, fragmentation offset : 큰 IP 데이터그램이 여러 개의 작은 IP 데이터그램으로 분할된 다음 목적지로 독립적으로 전달되며, 여기서 페이로드 데이터가 최종 호스트의 트랜스포트 계층으로 전달되기 전에 다시 모이게 된다. 이 때 사용되는 정보들이다.- time to live : 네트워크에서 데이터그램이 무한히 순환하지 않도록 한다. 이 필드가 0이되면 라우터가 데이터그램을 폐기한다.- upper layer : 이 필드는 일반적으로 IP 데이터그램이 최종 목적지에 도착했을 때만 사용 된다. 이 필드값은.. 2024. 8. 20. [Computer Networking] Network Layer : Router (라우터) Router- 입력 포트 : 포워딩 테이블을 참조하여 도착된 패킷이 스위치 구조를 통해 라우터 출력 포트를 결정한다.- 스위치 구조 : 라우터의 입력 포트와 출력 포트를 연결한다.- 출력 포트 : 스위치 구조에서 수신한 패킷을 저장하고 필요한 링크 계층 및 물리 계층 기능을 수행하여 출력 링크로 패킷을 전송한다. Destination-based forwarding- 목적지 주소 기반 포워딩의 경우 목적지 주소에 따라서 링크를 결정하게 되는데, 위 표와 같이 목적지 주소 범위에 따라서 링크 인터페이스가 결정된다.- 다수의 매치가 있을 때 라우터는 최장 프리픽스 매치 규칙(longest prefix matching rule)을 사용한다. 즉, 테이블에서 가장 긴 매치 엔트리를 찾고, 여기에 연관된 링크 인터.. 2024. 8. 18. [Computer Networking] Network Layer : Packet Switching, Loss and Delay Packet Switching- Store-and-forward 대부분의 패킷 스위치(라우터 등)은 저장-후-전달 전송 방식을 이용한다. 저장-후-전달은 스위치가 출력 링크로 패킷의 첫 비트를 전송하기 전에 전체 패킷을 받아야 함을 의미한다. 그림에서 라우터는 패킷1의 일부분을 받았지만 라우터는 저장-후-전달을 채택하고 있기 때문에 수신한 비트를 전송할 수 없다. 대신에 그 패킷의 비트를 먼저 버퍼에 저장한 후 라우터가 패킷의 모든 비트를 수신한 후에만 출력 링크로 그 패킷을 전달하기 시작한다. - Packet Queueing 각 링크에 대해 패킷 스위치(라우터 등)은 출력 버퍼(큐)를 갖고 있으며 그 링크로 송신하려고 하는 패킷을 저장하고 있다. 도착하는 패킷이 한 링크로 전송되어야 하는데 .. 2024. 8. 15. [Computer Networking] Transport Layer : TCP (3) (Transmission Control Protocol) Congestion 한 라우터에 데이터가 몰릴 경우, 자신에게 온 데이터를 모두 처리할 수 없게 된다. 이런 경우 호스트들은 또 다시 재전송을 하게 되고 결국 혼잡만 가중시켜 오버플로우나 데이터 손실을 발생시키게 된다. 이러한 상황을 피하기 위해 송신촉에서 보내는 데이터의 전송 속도를 강제로 줄이게 되는데, 이러한 작업을 혼잡 제어라고 한다. TCP Congestion Control : AIMDAdditive Increase : 패킷 손실이 일어나기 전까지 전송률을 증가시킨다.Multiplicative Decrease : 패킷 손실이 일어난다면 전송률을 반으로 깎는다. 혼잡 제어는 cwnd로 표시되는 혼잡 윈도우(Congestion Window)를 추적한다. 이는 TCP 송신자가 네트워크로 트래픽을.. 2024. 8. 14. [Computer Networking] Transport Layer : TCP (2) (Transmission Control Protocol) TCP flow control (흐름 제어)- 애플리케이션 계층에서 TCP 소켓 수신 버퍼에서 데이터를 읽는 속도가 데이터가 도착하는 것보다 비교적 느리다면, 송신자가 점점 더 많은 데이터를 빠르게 전송함으로 수신 버퍼에 오버플로가 발생할 것이다.- 이처럼 TCP는 송신자가 수신자의 버퍼를 오버플로시키는 것을 방지하기 위해 애플리케이션에게 흐름 제어 서비스를 제공한다. 흐름 제어는 송신자가 보내는 속도와 수신자가 읽는 속도를 일치시키는 서비스다.- TCP는 송신자가 수신 윈도우라는 변수를 유지하여 흐름제어를 제공한다. 수신 윈도우는 수신 측에서 가용한 버퍼 공간이 얼마나 되는지를 송신자에게 알려주는 데 사용된다. TCP는 전이중(full-duplex)이므로 연결의 각 측의 송신자는 별개의 수신 윈도우를 .. 2024. 8. 9. [Computer Networking] Transport Layer : TCP (1) (Transmission Control Protocol) TCP (Transmission Control Protocol)- TCP는 애플리케이션 프로세스가 데이터를 다른 프로세스에게 보내기 전에, 두 프로세스가 서로 '핸드셰이크'를 먼저 해야 하므로 연결지향형이다.- TCP 연결은 전이중 서비스를 제공한다. 만약 호스트 A의 프로세스와 호스트 B의 프로세스 사이에 TCP 연결이 있다면, 애플리케이션 계층 데이터는 B에서 A로 흐르는 동시에 A에서 B로 흐를 수 있다.- TCP 연결은 항상 단일 송신자와 단일 수신자 사이의 점대점이다. 단일 송신 동작으로 한 송신자가 여러 수신자에게 데이터를 전송하는 멀티캐스팅은 TCP에서 불가능하다. TCP Segment Structure- UDP 처럼 헤더는 상위 계층 애플리케이션으로부터 다중화와 역다중화를 하는 데 사용하는.. 2024. 8. 4. 이전 1 2 다음