network 11

개발자가 TCP 송/수신 원리를 알아야 하는 이유

시나리오 server쪽에서 file하나를 들고 있다가 클라이언트에서 사용자가 파일을 다운로드받는 상황 서버입장 Server프로그램이 돌아가고있고 socket인터페이스를 클라이언트와 통신하기위해 열어놨을것입니다. 소켓통신은 다음과 같은 동작을 하게 돼 있습니다. Recive : 읽기 Write(send) : 보내기 그럼 서버 컴퓨터 저장소와 서버프로그램이 통신을 하게 될텐데 이 IO가 일어날때 메모리에 할당이 일어나는데 이때 데이터가 일정수준이상 커지면 데이터를 끊어서(대부분의 데이터는 끊어짐) 이동하는데 이때 socket과 tcp사이에 일어나는 IO를 Buffered IO 라고 합니다. 자, 이제 이 buffer가 ip 패킷이 있는 계층으로 내려가면서 세그먼트단위로 다시 한번더 쪼개집니다. 이 tcp계층..

네트워크 2023.08.20

Inline, OutOfPath, proxy 개념 / proxy 활용과 reverse proxy 와 forward proxy

inline 장치 inline장치는 은 주로 network 디바이스가 된다. network를 고속도로라고 생각했을때 inline장치는 톨게이트 같은 역할을 합니다. bypass시키던지 drop시키던지 결정을 합니다. 포트 미러링 특정 포트를 열어놓고 그 포트에 지나가는 패킷을 bit하나 틀리지않게 완전 똑같이 복사합니다. 이 패킷은 readOnly 속성을 띄며 패킷을 스니핑 하는것인데 이렇게하는 것을 sensor라고 합니다. 이렇게 스니핑하는 이유는 장애가 발생하는지 아닌지 확인하거나 탐지의 용도로 두는데 이것이 OutOfPath가 되는것입니다. 해당 작업은 네트워크 장비에 부하가 많이 걸리는 작업입니다. 예시로 고속도로에 과속감시 카메라가 있다고 빨리달리는 자동차를 새울수는 없지만 체크는 할 수 있게 ..

네트워크 2023.08.20

와이어 샤크 작동 원리

와이어 샤크 작동원리 와이어샤크는 네트워크 레이어의 커널계층에 있는 필터를 통해서 아웃바운드되거나 인바운드되는 데이터를 검열하는 필터가 있는데 이때 검열하지 않고 bypass(통과)시켜버리면서 감시(수집)만 하게만들수 있다 이를 sensor를 통한 sensing이라고 하는데 바로 이 센서를 현시점에서는 NPcap이라고 합니다. NPcap을 통해서 PC를 통해서 인바운드되거나 아웃바운드되는 데이터를 모두 와이어 샤크를 모읍니다. 그럼 이 와이어샤크라는 프로그램이 이 패킷데이터를 받자마자 곧바로 디코딩을해서 프로토콜 규정에 맞게 해석을해서 사람이 볼 수 있도록 만들어 주는 것입니다. 주의할점 자 여기까지만 보면 아~ 그런 프로그램이구나 생각할 수 있지만 조금만 더 깊게 생각해보면 이 와이어샤크로 엄청난 일을..

네트워크 2023.08.20

IP 해더 형식과 의미

Ip 해더 형식 ip header는 20byte입니다. 위키비디아 에서 들고온 사진 입니다. DATA : 데이터 64KB 까지 가능 TOS : TypeOfService 대역폭 품질관리를위한 데이터 Identification : 단편화와 관련이 있다 TTL : timetoLive 의 약자 입니다. 인터넷은 라우터의 거대한 집합체입니다. 이 라우터들이 packet을 유통합니다. 이때 패킷이 라우터를 하나씩 지나칠때마다 이 timetoLive값이 1씩 감소합니다 TTL은 256까지가 최대인데 이값이 0이되면 패킷을 패기합니다. Source address : 출발지 주소 Destination address : 도착지 주소

네트워크 2023.08.20

L2 스위치란?

L2 스위치 맥어드레스는 인위적으로 조작하지 않는이상 전세계에서 유니크한 값입니다. 48bit로 이루어져 있고 이 맥주소로 스위칭을 합니다. 네트워크는 스위치의 집합체라고도 볼 수도 있는데 PC에서 NIC를 통해서 렌카드에 연결된 렌케이블은 스위치와 연결돼 있습니다. 이 스위치의 이름이 L2Access입니다. L2Access에서 또다른 스위치로 넘어가는데 이를 L2Distribution스위치라고합니다. 그럼 L2Access과 L2Distribution의 차이는 L2Access는 EndPoint유저를 위한 스위치 이고 L2Distribution는 스위치를 위한 스위치입니다. 즉 l3라우터와 연결돼 있는 장비 입니다. 그렇기때문에 L2Access의 장비에 반드시 한 포트는 Uplink를 위해서 포트하나를 비..

네트워크 2023.08.20

인터페이스 선택 원리와 기준

인터페이스 선택의 핵심원리 예시를 들어 노트북으로 크롬을 실행 시키고 있다 이 노트북엔 유선인터넷이 연결돼 있는 상태입니다. 이때 무선 와이파이를 켜서 노트북에 연결시키려고합니다. 이때 이 호스트의 ip주소는 몇개를 가질 수 있을까? 일반적으로 생각하면 2개이다. 하지만 만약에 유선인터넷은 kt망을 사용하고 무선망은 skt를 쓰고 있습니다. ip도 두개 통신망도 두개 이럴땐 누가 이 크롬을 사용하게 될까? 그렇다면 크롬을 실행시켜서 네이버에 접속을 시도할때 크롬의 소캣이 TCP/IP가 바인딩 돼야 할텐데 이때 어떤 네트워크 인터페이스를 사용할지 선택을 해야합니다. 위 데이터는 현제 컴퓨터의 라우팅정보를 나타낸것입니다. 여기서 인터페이스가 해당 글에서 봐야할 대상인데 어떤 ip주소는 어떤 네트워크 인터페이..

네트워크 2023.08.20

네트워크에서 데이터 단위

유저모드에 어플리케이션 프로세스(소켓수준) 수준에서는 스트림 스트림은 끝을 알 수 없는 일열로 쭉 이어진 데이터를 뜻합니다.(파일) 이를 TCP로 보낼때는 잘개잘개 쪼개서 보냅니다. 이 잘개잘개 쪼개진 조각하나를 세그먼트라고하고 이 세그먼트를 전송가능한 형태로 포장한것을 패킷이라고 합니다. 일반적인 맥시멈 세그먼트 사이즈는 1500키로바이트 입니다.

네트워크 2023.08.20

Switch가 하는 일이 뭘까?

Swhitch가 하는 일이 뭘까? Network를 고속도로에 비유하여 생각하면 쉽게 이해할 수 있다고 합니다. 출발지에서 어떠한 목적지로 향할때 목적지로 가기 위해서 이정표를 보고 어떠한 교차로를 거치기도 합니다. 이때 그 경로는 switch로 생각할 수 있고 그 경로로 진입하는 것을 switching이라고 합니다. 이때 중요한것은 이에대한 목적이 단순히 목적지에 도착하는것이 아니라 얼마나 효율적으로 최소한의 경로선택(스위칭)만 하고 갈수 있냐입니다. 다시 네트워크 세상에 와서 라우터(l3스위치)끼리는 서로 통신을 하고있다가 패킷단위의 데이터가 들어오면 어떠한 근거를 가지고 가장 빠른 경로를 통해서 데이터를 보내준다. 이때 그 어떠한 근거가 바로 라우팅 테이블 이라고합니다.

네트워크 2023.08.20

개발자 관점에서의 Port 번호

개발자는 port를 process 식별자로 생각한다. 컴퓨터를 네트워크 관점에서 세가지 레이어로 나누면 응용계층 커널계층 하드웨어 계층으로 나눌 수 있는데 이때 커널에 있는 TCP는 커널계층에 있고 애플리케이션은 응용계층에 있는것이 일반적입니다. 그럼 이 응용계층에 있는 애플리케이션은 본질은 파일이지만 이 파일과 커널의 프로토콜을 연결할 수 있도록 인터페이스가 제공되는데 이때 추상화 된 파일을 소켓이라고 합니다. 이 소켓을 생성할때 tcp소켓인 경우 소켓에 attech되는 정보가 Port번호라고 합니다. Port는 최대 16bit -2 까지 만들수 있습니다. 그리고 이 Port는 각 프로세스마다의 고유의 번호가 되기때문에 한개의 프로세스만이 독립적으로 가질 수 있는 번호가 할당되며 그렇기 때문에 개발자의..

네트워크 2023.08.20

Host, Switch, network 와 개념/ IPv4 주소 체계

Host, Switch, Network host: 컴퓨터가 Network에 연결이 돼 있으면 호스트라고 부른다. 호스트는 크게 network 이용주체와 network자체로 나뉜다. Switch : 컴퓨터가 network에 연결된 호스트가 아닌 컴퓨터 자체가 network를 이루고 있을때 Switch가 된다. 대표적으로 Router가 있다. EndPoint : network 이용주체의 다른말이다. 이용주체는 Peer, Server, Client등으로 기능과 존제의 이유에따라서 나뉜다. NetWork: 가장 큰 풀이 internet이다 이 internet을 이루는 핵심 구성요소가 Router와 dns가 됩니다. 네트워크 자체를 이루고 있는 컴퓨터가 switch고 대표적인 스위치가 라우터가 있다. 방화벽이나 ..

네트워크 2023.08.20