본문 바로가기

네트워크7

Unix Domain Socket이란? Unix Domain Socket이란 같은 local machine안에서 사용되는 IPC 기법의 한 종류로 프로세스 간의 통신을 하기 위한 것입니다. 같은 local machine안에서 사용하는 기법이므로 서로 다른 노드(컴퓨터)간의 커뮤니케이션을 하기위한 용도는 아닙니다. 그런데 TCP/IP를 이용해서도 같은 노드 안에서 프로세스간 통신을 할 수 있습니다. 바로 loopback address(127.0.0.1)를 사용하면 가능합니다. 그렇다면 Unix Domain Socket과 TCP/IP 간의 차이는 무엇일까요? 우선 TCP를 사용하면 loopback address라도 네트워크 통신을 하는데 필요한 여러 overhead가 발생합니다. osi 7 layer에 따라 각각의 layer에서 패킷헤더를 만들고.. 2021. 4. 24.
네트워크 NAT란? NAT란? - 하나의 IP주소로 여러개의 Device가 인터넷을 사용가능하게 하는 것 예를들면 우리는 공유기하나로 노트북, 핸드폰 등을 사용한다. 어떻게 가능할까? 위 그림처럼 공유기가 각각의 장치들에게 private IP를 할당하고 인터넷으로부터 public IP로 뭔가가 들어오면 private IP로 전환해서 주기 때문에 하나의 IP address로 여러개의 장치 사용이 가능하게 된다. (각각의 장치들로부터 인터넷으로 보낼 때는 private IP를 public IP로 전환해준다.) 변환과정에 대해 조금 더 구체적으로 가면 NAT Translation Table에 각 Device들의 private IP와 port number를 기억해두고 웹서버로부터 응답이오면 Translation Table을 보고 .. 2020. 12. 7.
네트워크 인터넷과 여러 계층들 인터넷과 여러 계층의 관계에서 조금 햇갈릴 수 있는 부분을 정리해보았다. 인터넷은 HTTP기반? - 정확히는 아니다. 인터넷에서는 HTTP말고도 다양한 종류의 application protocol이 사용된다. HTTP의 경우는 주로 web service를 위한 webservice protocol이다. (HTTP는 TCP/IP를 기반으로 하는 application protocol) 인터넷의 Network Layer는? - 인터넷의 network layer는 best effort service를 제공하는데 이는 이름만 best가 들어갔지 사실상 아무것도 보장하지 않는다. (패킷이 순서대로 전송되는지, 패킷의 도착을 보장하는지, 대역폭을 얼만큼 사용하는지 등) 그러나 network layer의 상위 계층인 t.. 2020. 12. 6.
네트워크 switching fabrics 라우터는 하나의 input/output을 가지고 있는게 아니고 여러개의 input/output을 가지고 있다. 그럼 예를들면 1번 input에서 들어온 데이터를 몇번 output으로 보낼지 등을 결정해야한다. 라우터에는 위 그림처럼 forwarding table이 있다. 보면 하나의 ip주소가 아닌 범위형으로 각 링크를 결정하는데 이는 당연히 table하나에 전세계에 모든 ip를 담을 수는 없으니 범위형으로 어느범위부터 어느범위까지는 몇번 링크로 보낸다를 정해놓은 것이다. 범위를 매칭할 때는 longest prefix를 따르는데 예를들면 0000 1111은 0000 1100과 0000 1110 두개 다 포함이 될 수 있다. 이경우 0000 1110이 더 길게 맞는 것이므로 0000 1110에 맞는 lin.. 2020. 11. 28.