본문 바로가기
독서/Introduction to Networking

2. Network Architecture

by proudofch 2021. 1. 6.

Charles Severance, Introduction to Networking

(www.net-intro.com/index.php)

정리

  • TCP/IP 모델의 네 계층: Link, Internetwork, Transport, Application
  • 인터넷이라는 복잡한 수준의 시스템에서 발생하는 문제를 해결하기 위해 일단 이를 작은 문제 4개로 나누고(계층 분리), 각 계층이 독립적으로 문제를 해결하고 동작하게 하여 전체 문제를 해결한다.
  • Link 계층
    1. 연결 담당(요즘은 거의 무선 기술)
    2. 무선은 데이터 전송에 사용할 무선 주파수 및 인코딩 방식, 유선은 데이터 전송에 사용할 전압, 속도 등을 고민해야 한다. 
    3. CSMA/CD(Carrier Sense Multiple Access with Collision Detection):
    데이터 전송 시 충돌/교착을 방지하기 위한 방법. 데이터 전송 이전에 네트워크를 확인하고, 내 컴퓨터가 자체 데이터를 받을 수 있으면(즉, 네트워크가 비었다면) 계속 전송한다. 만약 충돌이 감지되면 연관된 컴퓨터 모두 전송을 중단했다가 잠시 후 재전송한다. 각 컴퓨터의 대기 시간이 조금씩 달라지면 충돌의 가능성이 줄어든다. 무선 연결에서 다수의 장치가 동시에 데이터를 전송하려고 할 때 유용하게 쓰이는 방식이다.
    4. 유선의 경우 라우터를 통해 전송하므로 non-shared하다. 여러 Link 계층과 여러 라우터를 거쳐 데이터가 전송된다. 
  • Internetwork 계층 (IP)
    1. Link 계층 다음으로, 라우터를 통해 패킷이 전달되는 계층

    2. 라우터는 패킷이 목적지에 가까워지는 최선의 추측을 할 뿐이다. 직접적인 경로는 최종 목적지 직전의 라우터에서 알 수 있다.
    3. 라우터는 사용량 증가와 네트워크 불량에 기민하게 반응하므로, 패킷은 불량 라우터를 피해 경로를 재설정할 수 있다.
  • Transport 계층 (TCP)
    1. 패킷이 사라지거나, 늦게 도착하거나, 범위를 벗어나는 일이 생겨도 최종 목적지에선 최초로 전송한 데이터를 조립할 수 있다.
    2. 최종 목적지와 시작점(=소스 컴퓨터)은 데이터 전송량과 재조립 여부를 소통하는데, 이 과정에서 잃어버린 패킷이 감지되면 최종 목적지에서 소스 컴퓨터에 재전송을 요청한다.
    3. 최종 목적지에서 모든 데이터를 받았다는 알람이 오기 전까지 소스 컴퓨터는 데이터 복사본을 반드시 저장해둔다. 그리고 데이터가 확실히 전송됨을 확인 후에 복사본을 삭제하고 다음 데이터를 전송한다.
    4. window size의 적절한 크기를 유지해야 전송 속도 저하나 과부하를 방지할 수 있다.
  • Application 계층
    1. Link, Internetwork, Transport가 데이터를 전송하기 위해 긴밀하게 협력하는 계층이라면, 이를 이용하여 어떤 networked application을 만들 것이냐 하는 고민이 이 계층에 있달까?
    2. 1980년대 중반에 유저들은 네트워크 프로그램으로 원격 컴퓨터 로그인, 파일 및 이메일 전송, 실시간 채팅을 할 수 있었다.
    3. 1990년대 초반 개발된 World Wide Web이 지금까지 쓰이는 가장 흔한 network application이다.
    4. networked application은 두 가지로 나뉜다.
         1) server: 최종 목적지에서 동작하며 연결을 기다린다.
         2) client: 소스 컴퓨터에서 동작. 파이어폭스, 크롬, IE 등이 클라이언트 애플리케이션이다.
                            웹 서버와 연결되어 그곳에 저장된 문서와 페이지를 보여준다.
    5. URLs(The Uniform Resource Locators): (구글링한 내용) 네트워크 상에서 자원이 어디 있는지 알려주기 위한 규약. 쉽게 말하면 웹 페이지를 찾기 위한 주소.
  • 이 네 계층은 클라이언트 애플리케이션을 사용할 때 함께 동작한다. 이를 굳이 계층화한 것은 각 층이 인접한 층에 영향을 미치기 때문이다.
  • networked application을 만들고 싶다면 Transport 계층만 고려하면 된다. 하위 계층의 세부 사항을 고민할 필요는 없다.

용어 사전

  • client | networked application에서 클라이언트 애플리케이션은 서비스를 요청하거나, 연결을 개시하게 한다.
  • server | networked application에서 서버 애플리케이션은 서비스 요청 혹은 연결 요청을 기다리는 것에 응답한다.
  • offset | 전체 데이터에서 패킷의 상대적 위치
  • window size | 알림을 받기 전에 보낼 수 있는 최대 데이터 양(구글링: 한번에 받을 수 있는 데이터의 양. 통신할 때 상대방에게 자신의 window size를 알려주면 상대방이 이 크기만큼 데이터를 보내고, 처리했는지 확인한다.)

 

'독서 > Introduction to Networking' 카테고리의 다른 글

1. Introduction  (0) 2020.12.31

댓글