CS/네트워크

Switch현재 이더넷은 star topology 형태로 동작하기 때문에 스위치나 허브의 도움이 필요하다. 스위치와 허브의 차이를 잠깐 짚어보자면, 허브는 각 노드의 위치를 저장하고 있지 않기 때문에 데이터를 받으면 연결된 모든 기기에 데이터를 전송한다. 반면에 스위치는 스위치 테이블이 있어서 해당하는 기기에만 데이터를 전송한다. 스위치가 테이블을 만드는 과정을 알아보자.  스위치는 처음에 모든 기기에 대한 정보를 가지고 있지 않는다. 스위치는 라우터와 같이 프로토콜을 사용해서 테이블을 만드는 것이 아니라 Self-Learning으로 테이블을 만든다. 스위치로 프레임이 들어오면 송신자 주소를 확인하고 이를 스위치 테이블에 기록한다. 스위치에 연결된 모든 기기들이 한번씩 프레임을 보내면 테이블이 완성된다...
이더넷 형태이더넷은 물리적으로 동축케이블 기반 버스 형태를 주로 사용했었다. 그러나 하나에 문제가 생기면 네트워크 전체에 문제가 발생하는 단점이 있었고 최근에는 switched 형태로 사용하고 있다. 아래 그림처럼 A가 B로 패킷을 전달할 때 동시에 C에서 D로도 패킷을 전달할 수 있다.  이더넷 프레임 구조이더넷은 네트워크 카드라고 하는 것으로 구현되어 있는데, 카드마다 이더넷 프레임 구조가 다른다. 일반적으로 주로 사용되는 프레임 구조는 다음과 같다.Preamble : 동기화하는 것으로 다음부터 패킷임을 알려주는 필드Destination Address, Source Address : destination 주소가 broadcast이거나 본인을 가리킬 때 데이터를 읽어야 한다. Type : 프로토콜이 명..
지금까지 한 번에 여러 기기가 데이터를 보낼 때 충돌을 감지하고 충돌에 대처하는 방법을 배웠다. 이러한 데이터를 보낼 때 패킷 헤더에 destination, source 주소를 넣어 보내는데, link layer에서는 어떻게 이를 처리하는지 알아보자.Addressing, ARP 모든 기기는 IP 주소와 MAC 주소를 가진다. IP 주소는 네트워크에 들어갈 때 부여 받는 주소이지만 MAC 주소는 기기가 만들어질 때부터 공장에서 번호를 찍어 나오는 주소이다. 학년이 올라갈 때마다 반, 번호가 바뀌는 것처럼 IP 주소도 같은 원리이고, MAC 주소는 사람의 주민등록번호처럼 영원히 바뀌지 않는 주소라고 생각하면 된다. IP 주소는 32비트 주소 체계를 가지고 있고, MAC 주소는 48비트 주소 체계를 가진다. ..
링크 계층에서 오류를 탐지하고 정정하는 방법을 배웠다. 이번에는 링크 계층에서 여러 기기가 한 번에 데이터를 전송할 때 서로 충돌이 발생하지 않도록 방지하는 방법을 배울 것이다. MAC(Media Access Protocol)링크에는 2가지 타입이 있다. point-to-point는 1대1 연결로 한 기기가 보내면 한 기기는 받는 역할이기에 충돌이 발생하지 않는다. 그러나 Broadcast는 여러 기기가 하나의 링크를 공유하기 때문에 충돌이 발생할 수 있다. 때문에 데이터 링크 계층에는 다중 접속 문제를 해결하기 위한 방법이 필요하다. 그래서 나온 것이 Media Access Protocol(MAC)이다. 이는 broadcast 채널에서 여러 기기가 하나의 버스를 공유할 때 충돌이 발생하는 것을 관리하는..
지금까지 TCP/IP의 3가지 계층을 살펴봤고, 이번에는 Link Layer를 알아볼 차례이다. 호스트와 라우터들은 노드 형태로 되어있고 이 노드들은 유선, 무선, LAN 방식의 링크로 연결되어 있다. 링크 계층에서는 링크를 통해 노드에서 물리적으로 가까운 거리까지 데이터그램을 전달하는 일을 담당한다. 즉, 이 계층의 가장 큰 목표는 에러 없이 링크를 통해 송수신하는 일이다. 이를 위해서 먼저 framing이라는 과정을 거친다. 데이터그램에 헤더와 트레일러를 붙이고 사용할 채널에 접근한다. 이러한 인접 노드에 신뢰성 있는 전송을 제공하기 위해 흐름 제어, 에러 탐지, 에러 정정, half duplex 혹은 full duplex 서비스를 제공한다. 참고로 링크 계층은 NIC라는 네트워크 인터페이스 카드에서..
ICMP(Internet Control Message Protocol)앞서 IPv6의 데이터그램 포맷을 살펴볼때, Fragmentation offset/flags/Identifier 필드가 없다고 언급했었다. 이는 fragmentation이 송신 과정에서 발생하지 않고 출발지, 목적지에서만 분할. 재조합이 이루어진다고 했다. 만약에 라우터를 지나는데 MTU에 비해 데이터 길이가 긴 경우에는 분할하지 않고 버리고 ICMP를 통해 오류 메세지를 보낸다. ICMP는 에러 메세지 전달만을 위한 것은 아니다. 예를 들어서, 목적지 네트워크까지 도달하지 못한 경우, ping 프로그램을 통한 echo request, TTL이 만료된 경우에 사용한다. 대표적으로, Traceroute 프로그램은 일부러 사용하지 않는 p..
앞선 글에서는 routing protocol 두 가지를 배웠다. link state는 dijkstra 방식을 사용해서 네트워크에 속해있는 라우터의 정보를 모두 알고있는 상태에서 최적의 경로를 설정한다. distance vector는 bellman ford 방식을 사용해 인접 라우터로부터 오는 정보를 비교하여 업데이트하는 방식이다. 이 때, 링크 정보가 더 나빠졌는데도 인지하지 못하고 무한정으로 반복하게 되는 문제(count-to-infinity)가 발생할 수 있다.  그러나 네트워크에 존재하는 모든 라우터들이 각각의 라우터 정보를 다 가지고 있을 수는 없다. 또한 인터넷은 ISP들의 네트워크이고 ISP들이 네트워크를 관리하기 때문에 어떤 프로토콜을 사용할 수 있어야 한다. 그래서 AS(Autonomous..
지금까지는 네트워크 계층의 Data Plane을 학습했다. Data plane은 forwarding을 수행하며 forwarding table을 통해 input port에서 들어온 패킷을 어떤 output port로 내보낼지를 결정하는 일을 한다. 이와 함께 라우터의 구조를 학습했다. 앞선 글에서도 언급했지만 Control Plane은 routing algorithm을 통해 routing table을 만드는 역할을 한다. 출발지부터 도착지까지 어떤 경로로 가야할 지를 결정해주는 routing protocol에 대해 학습해보자. Routing Protocols라우팅 프로토콜의 최종 목표는 출발지에서 목적지까지의 최적의 경로를 결정하는 일이다. 최적인 경로를 결정하는 데에는 비용이 될 수 있고 속도가 될 수 ..
Network Layer : Internet지금까지 네트워크 계층의 Data plane과 Control Plane에 대해 학습했다.IP Datagram FormatIPv4 패킷의 내부 구조를 알아보자.VerIP 프로토콜의 버전이 저장된 필드이다. IPv4이기 때문에 4가 들어가 있다. Head Len헤더 길이를 byte단위로 저장한 필드다. 옵션 길이에 따라 헤더 길이가 달라지기 때문에 가변 길이다. 대부분의 IPv4 데이터그램의 헤더는 20byte이다. Type of Service각 패킷마다 제공하는 서비스를 저장한 필드다. 예를 들어서 실시간 데이터 그램과 비실시간 트래픽 등을 저장한다. 0~5까지는 diffserv, 6~7은 ECN을 나타낸다. Length헤더와 payload를 총 합친 길이를 저장..
Network LayerServices and Protocol네트워크 계층은 근본적으로 송신 호스트에서 수신 호스트로 패킷을 전달하는 것이다.sender : 세그먼트를 데이터 그램으로 encapsulate 한 다음 링크 계층으로 전달receiver : 헤더에 쓰인 주소를 읽어들이고 전송 계층으로 전달 이러한 일을 위해서 네트워크 계층에는 2가지 기능을 정의하고 있다. 먼저 Forwarding은 라우터의 input link로 들어온 패킷을 어떤 output link로 내보낼지 결정하는 과정이다. routing은 패킷에 명시된 목적지 주소까지 경로를 결정하는 과정이다. 그래서 라우터는 목적지를 결정하는 테이블인 forwarding Table을 가지고 있어서 이것을 참고해서 패킷을 어디로 전달할지 결정한다. ..
소-은
'CS/네트워크' 카테고리의 글 목록