이 포스팅은 컴퓨터 네트워크 시리즈 3 편 중 2 번째 글 입니다.

  • Part 1 - 01: 네트워크 넓게 보기 Part 1
  • Part 2 - This Post
  • Part 3 - 03: HTTP
▼ 목록 보기

기본 용어 정리

네트워크

프로그램을 동작시키는 프로세스의 일종, 메시지 교환, 송수신

Net + Work 의 합성어이다. 메세지를 교환하며 송수신을 한다. 좀 더 추가하자면 두 대 이상의 디바이스가 논리적 혹은 물리적으로 연결되어 통신이 가능한 상태임을 말한다.

IPC(Inter Process Communication)

프로세스는 완전히 독립된 실행객체이다. 서로 독립되어 있다는 것은 다른 프로세스의 영향을 받지 않는다는 장점이 있다. 그러나 독립되어 있기 때문에 별도의 설비가 없이는 서로 간에 통신이 어렵다는 문제가 있으며, 이를 위해 커널 영역에서는 IPC라는 내부 프로세스간 통신(Inter Process Communication)을 제공한다. 이 기능을 사용하여 프로세스는 프로세스간 통신이 가능케 한다.

Socket

프로세스간 통신 interface

image IPC를 가능케하는 interface이다. 서로 다른 process에서 접속을 하려 할 때, 이 socket을 사용하여 접근하게 되고, 해당 socket은 접속하는 process가 제대로 왔는 지와 같은 검사를 수행하게 된다. 은행에서 창구를 생각하면 된다.

사용자 입장에서 소켓을 통해 메시지를 내려받을 때, 원하는 요구사항

  1. timing
    • 빠른 시간내에 데이터가 도착했으면 좋겠다. (음성)
  2. security
    • 안전하게 나한테만 왔으면 좋겠다.
  3. data integrity
    • 모든 데이터가 순서에 맞게 제대로 왔으면 좋겠다.
  4. Throughput
    • 특정 시간안에 도착하는 데이터의 양이 많았으면 좋겠다. (영화 다운로드)

등이 있지만, 실질적으로 TCP를 사용한다고 가정했을 때 제공받을 수 있는 것은 3번 뿐이다. UDP를 사용할 경우 3번도 지켜지지 않는다. 결과적으로 내가 위의 3가지에 해당하는 기능을 원한다면, 애플리케이션 계층에서 구현하여야 한다.

IP

인터넷 공간 상에서 해당 단말기의 고유 주소

Socket을 통해 통신한다는 것은 알았다. 근데 우리가 전화를 걸더라도, 어디에 전화를 걸것인지 알아야 한다. 그걸 대표하는 것이 전화번호이다. 마찬가지로 통신을 하려면, 어디에 통신할 것인지 알려주는 과정이 필요하다. 그 어디에 해당하는 것이 IP 주소 이다.

Port

IP 주소를 갖고 있는 컴퓨터에서 Process에 접근하기 위한 번호

해당 컴퓨터에 들어가더라도, 어떤 process에 접근하는지를 알아야 한다. 그걸 대표하는 것이 포트 번호이다. 특정 프로토콜은 특정한 포트번호로 설정되어 있다.예를 들어 웹 서버의 포트 번호는 기본적으로 80번 포트로 약속되어 있다.

DNS

도메인이름을 치면 IP주소로 바꿔주는 서비스

naver.com -> 192.168.03.2 OR 192.168.03.2:80

TCP 특징 (간략)

Transmission Control Protocol

  1. Reliable Transport
    • 신뢰성 있는 전송 (패킷 유실없이 감 : 패킷이 유실되지 않는다는 것이 아니다.)
  2. Flow Control
    • 수신 호스트의 데이터 처리속도를 고려하여 속도를 조절
  3. Congestion Control
    • 네트워크 상황에 맞게 속도 조절

UDP 특징 (간략)

User Datagram Protocol

TCP와 완전 반대이다. 어떠한 규약없이 server가 그냥 보낸다.

Reference

KOCW 이석복 교수님 - 컴퓨터네트워크