3분 네트워크 책 스터디 내용정리

네트워크 기초지식

  • 네트워크란 무언가와 무언가가 그물망처럼 무언가에 의해 연결되어있는 상태, 네트워크=컴퓨터 네트워크
  • 컴퓨터 네트워크란 컴퓨터와 컴퓨터가 그물망처럼 통신매체로 연결되어서 데이터를 운반하는 것
  • 리소스란 이름을 가진 데이터들 즉 메일이나 파일, 인쇄하고 싶은 데이터등 컴퓨터랑 사용자가 가진것
  • 네트워크의 장점은 리소스를 공유하는것 즉 데이터 통신
  • 데이터란 무언가에 대한 정보를 컴퓨터상에서 표현한 것 데이터는 비트로 구성된다
  • 인터페이스란 컴퓨터에 파이프를 연결할 때 컴퓨터에 파이프 접속구가 필요하다 이것을 인터페이스라고 한다. 즉 컴퓨터와 파이프의 중개역이다.
  • 데이터 통신에서 필요한 것 데이터, 통신매체, 인터페이스
  • 프로토콜이란 데이터를 주고받는 규칙 보내는 쪽하고 받는 쪽은 같은 프로토콜을 사용해야 한다.
  • 패킷 교환이란 보내고 싶은 데이터를 일괄적으로 한번에 보내지 않고 여럿으로 분할해서 송신하는 것 그러므로 복수의 컴퓨터가 회선을 공유할 수 있게 된다.
  • 컴퓨터에 의한 데이터 통신에서는 복수의 컴퓨터가 동시에 사용할 수 있는 이 패킷교환 방식이 편리하다. 그래서 컴퓨터 네트워크는 패킷 교환 방식을 사용한다.
  • 라우터는 패킷 교환기 역할을 한다. 컴퓨터 3대에 라우터가 한개인 이유는 서버에 한개의 테이블이 분배되어 연결되어 있어서 이다. 케이블 분배기로 연결되는 범위를 세그먼트라고 한다.
  • 허브는 케이블 분배기다. 라우터를 사용하면 T자 분배기를 끼우지 않아도 분배가 가능하다. 허브를 사용한 네트워크를 멀티액세스 네트워크라고 한다. 반대로 컴퓨터 한 대가 다른 한 컴퓨터에만 데이터를 보내는 것을 포인트 투 포인트 네트워크라고 한다. 이 두 종류를 조합해서 패킷 교환 네트워크를 만들 수 있다.
  • lAN이란 구내에 설치된 네트워크다. WAN이란 떨어져 있는 지역의 LAN끼리 통신사업자의 통신 케이블을 빌려서 연결한 네트워크다.
  • OSI 참조 모델의 계층

    • 7계층 응용계층 : 사용자에게 네트워크 서비스를 제공한다.
    • 6계층 표현계층 : 데이터의 형식을 결정한다.
    • 5계층 세션계층 : 데이터 송수신의 순서 등을 관리한다.
    • 4계층 전송계층 : 신뢰성이 높은 전송으르 시행한다.
    • 3계층 네트워크계층 : 전송 규칙과 수신처를 결정한다.
    • 2계층 데이터링크계층 : 인접기기 사이의 데이터 전송을 제어한다.
    • 1계층 물리계층 : 전기 기계적인 부분의 전송을 시행한다
  • 계층은 각각 독립해 있다. 어떤 계층의 프로토콜 변경은 다른 계층에 영향을 끼치지 않는다. 하위 계층을 상위 계층을 위해 일하고 상위 계층은 하위 계층에 관여하지 않는다.
  • 프로토콜 데이터 유닛(PDU)란 데이터랑 데이터를 보내기위해 필요한 것들이 통합된 상태를 말한다. 각 계층마다 필요한 정보들을 추가할 수 있다. 운반하고 싶은 데이터에 헤더를 추가하는데 이것을 캡슐화라고 한다. 그리고 데이터를 앞에 붙이면 헤더, 뒤에 붙이면 꼬리부가 된다.
  • 통신에 필요한 프로토콜은 한 개가 아니라 복수의 프로토콜로 이루어진다. 데이터 통신을 같은 프로토콜군을 사용하는 컴퓨터끼리만 가능하다.
  • 프로토콜이 결정 하는것

    1. 기본적으로 데이터 사용방법
    2. 어떤 헤더를 붙일지를 결정한다.
    3. 데이터를 주고받는 순서
  • 현재는 OSI를 대신해 TCP/IP 프로토콜군을 사용한다. 현재 표준이 되는 프로토콜이다.
  • TCP/IP 프로토콜군을 위한 4계층 모델

    • 4계층 : 애플리케이션계층
    • 3계층 : 트랜스포트계층
    • 2계층 : 인터넷계층
    • 1계층 : 인터페이스계층

신호의 전송과 충돌

  • 케이블이 연결되어 있는 기기에 신호를 전달하는 것이 1계층의 역할이다.
  • 기기와 기기 사이를 연결해서 신호가 지나는 파이프 역할을 하는 것이 통신 매체다.
  • LAN에서 사용되는 케이블은 UTP다 두 개가 한쌍인 동선 네 쌍으로 이루어져 있다.
  • 인터페이스는 데이터를 신호로 바꾸어 케이블에 보내고 케이블로부터 받은 신호를 데이터화 한다 즉 비트를 신호로 신호를 비트로 변환하는 기기
  • 통신속도는 1초 동안 전해지는 비트 수이고 단위는 bps다.
  • 허브에 케이블로 연결되어 있는 기기는 동일 케이블에 연결되어 있는 것하고 같은 취급을 받게 된다.
  • 허브의 첫 번째 기능은 신호의 증폭과 재생이다. 허브는 감쇠에 의해 붕괴된 신호를 본래의 형태로 증폭(리피터), 재생한다.
  • 허브의 또 다른 기능은 복수의 기기를 연결해서 네트워크를 구축하는 기능, 허브에 연결되어 있는 기기끼리 신호를 주고받을 수 있게 된다.
  • 허브는 수신한 신호에 대해 어떤 제어도 하지 않는다. 즉 수신된 포트 이외의 모든 포트에 수신한 신호를 송신한다(플러딩). 즉 충돌이 일어날 수 있다.
  • 프레이밍이란 송수신되는 신호를 데이터로 인식할 수 있게 해준다.
  • 주소란 데이터를 보내는 상대와 자신을 특정하는 데이터, 어드레싱이란 이 주소를 어떻게 사용할지 어떻게 배정할지 같은것
  • 데이터 전송방법 3가지

    1. 유니캐스트
    2. 1대1 데이터 통신
    3. 브로드캐스트
    4. 1대 전체로 전원, 즉 모두에게 메시지를 보내는 데이터 통신
    5. 멀티캐스트
    6. 1대 다수로 지정된 복수의 기기로 메시지를 보내는 데이터 통신
  • 각각의 기기는 유니캐스트 주소를 적어도 한 개 갖고 있다. 인터페이스마다 유니캐스트 주소를 갖는다. 유일해야한다.
  • 이더넷은 MAC 주소가 사용된다. 이 주소는 인터페이스에 지정된 고정 주소다.
  • 이더넷에서는 허브에 의해 수신한 프레임의 수신처 MAC 주소를 보고 자기에게서 온 것 외의 다른 프레임을 파기한다.
  • 앞서 이야기한 멀티에겟스 네트워크의 경우 동시에 신호를 보내면 충돌이 일어날 수 있다고 했다. 그래서 이더넷에서는 CSMA/CD라는 엑세스 제어를 시행해서 충돌을 피하게 한다.
  • 하지만 그래도 결국 컴퓨터 수가 많아지면 충돌이 발생한다. 그래서 신호가 지나는 길을 나눈다. 이것을 스위치의 기능이다. 허브 대신에 사용한다.
  • 스위치 안에서 수신한 프레임을 따로따로 보낼 수 있도록 처리해서 충돌을 막는다. MAC주소와 필터링 버퍼링을 이용한다. 수신한 프레임 MAC주소를 기록해서 수신한 포트랑 MAC 주소를 연관 짓는다.
  • 프레임을 수신한 스위치는 프레임의 수신처 MAC 주소를 보고 그 MAC 주소가 있는 포트만 프레임을 송신한다.
  • 같은 수신처에 같은 프레임이 동시에 도달하면 버퍼에 일시적으로 저장한다. 그후 저장했던 프레임을 송신한다. 이것을 버퍼링이라고 한다.
  • 버퍼의 용량이 초과되면 백프레셔 또는 IEEE802.3x라는 규격을 사용해서 송신을 조정한다.
  • 스위치를 사용해서 충돌을 방지한다. 즉 충돌 도메인은 스위치에 의해 분할된다.
  • CSMA/CD는 반이중 통신이라 효율이 나쁜 구조다 그래서 전이중 통신을 사용한다. 이렇게 스위치를 사용해서 전이중 통신을 하는 것은 전이중 이더넷이라고 한다.

IP 어드레싱

  • 세그먼트란 라우터와 라우터 간의 범위 이 세그먼트 내에서 데이터의 송수신을 하는 것이 2계층의 역할이였다
  • 3계층에서 사용하는 네트워크는 라우터와 라우터로 분배된 컴퓨터 그룹을 말한다.
  • 네트워크 내의 컴퓨터끼리는 2계층에 의해 연결되어 있다. 멀티엑세스 네트워크 혹은 포인트 투 포인트 네트워크 형태로 컴퓨터가 연결된다.
  • 라우터를 넘어서는 브로드캐스트가 송신되지 않는다. 네트워크 간에서의 데이터 송수신을 인터넷 작업이라고 한다.
  • 논리주소와 물리주소는 주소에 위치정보가 포함되어 있는지 없는지 하는점이다.
  • 3계층의 두번째 역할은 라우팅이다. 수신처까지 어떤 경로로 갈 지를 결정한다.
  • 데이터에 IP헤더가 붙은 상태의 PDU는 IP 데이터그램이라고 부른다. 특히 IP 헤더에서 중요한건 송신처와 수신처의 IP주소다.
  • IP 주소는 네트워크 관리자가 컴퓨터에 할당한다. 논리 주소는 그 네트워크 관리자가 필요에 따라 자유롭게 붙일 수 있다. 그리고 논리 주소는 MAC주소 같은 물리 주소와는 다르게 네트워크에 접속할 때마다 붙인다.
  • 소속된 네트워크가 바뀌면 논리 주소도 바뀐다. 논리 주소에는 유니캐스트, 멀티캐스트, 브로드캐스트 3종류의 주소가 있다. 유니캐스트의 논리 주소 중 네트워크를 표시하는 번호는 접속되어 있는 모든 네트워크에서 유일하다.
  • IP는 컴퓨터를 식별하는 주소이고, 그 컴퓨터가 있는 네트워크 번호와 그 컴퓨터 번호로 구성되어 있다.
  • 클래스는 IP주소의 범위다. A~E의 5개로 나눠져있다. 클래스에 의해 컴퓨터 번호의 비트수가 정해지고, 이것으로 조직이 가질 수 있는 IP주소의 수량이 결정된다. 클래스로 나누어 IP주소를 할당하는 방식을 클래스풀 어드레싱이라고 한다.
  • 네트워크 번호를 설정하면 컴퓨터 번호가 생기는데 이것을 호스트 번호라고 한다. 실제의 컴퓨터에 할당하면 안되는 주소가 있는데, 비트가 모두 0이 되는 주소와 호스트 번호의 비트가 모두 1인 주소다. 각각 네트워크 주소, 브로드캐스트 주소라고 한다.
  • 분할된 작은 네트워크를 서브네트워크 또는 서브넷이라고 한다. 서브넷은 그 네트워크의 내부에서만 유효하다. 서브넷화 하는것을 서브네팅이라고 한다.
  • 호스트 번호의 비트를 서브넷 번호와 호스트 번호로 분할한다.
  • 서브넷 마스크라고 불리는 비트열을 IP 주소와 동시에 표기해야 한다. 서브넷 마스크는 IP 주소 중에 어디까지가 서브넷 번호인지를 나타낸다. 서브넷마스크의 비트가 1인 부분이 네트워크 번호다.
  • 클래스풀 어드레싱은 3개의 클래스로만 구분해서 낭비가 많다 그래서 생긴 것이 클래스라는 구분을 없앤 어드레싱이 클래스리스 어드레싱이다.
  • 슈퍼넷이란 클래스를 1개로 통합한 것이다.
  • 프리픽스 길이란 네트워크 번호의 길이를 나타내는 값이다. 주소뒤에 슬래시를 넣고 기술한다.
  • 이더넷을 사용해서 IP 데이터그램을 송수신하기 위해서는 4개의 주소가 필요하다. 수신처 MAC주소, 송신처MAC주소, 수신처 IP주소, 송신처 IP주소
  • DHCP란 IP주소가 자동으로 컴퓨터에 설정되는 방법이다. 클라이언트가 서버에게 IP 주소 할당을 요청하고 서버가 IP 주소를 할당하는 것
  • DHCP는 브로드캐스트를 사용한다. 전체수신으로 보낸다.
  • 수신처 MAC주소는 수신처의 IP주소가 결정된 후에 정해진다.
  • ARP프로토콜은 ‘이 IP주소의 호스트님, 당신의 MAC 주소를 알려주세요’ 라고 질문하는 프로토콜이다.
  • 데이터를 전송하고 싶은 컴퓨터는 수신처의 IP주소를 결정하고, 그 후에 수신처 MAC 주소를 알기 위해서 ARP 테이블을 참조한다. ARP 테이블은 일정기간 경과하면 파기된다.
  • DNS란 이름과 IP 주소를 대응시킨 시스템이다. 이름과 IP 주소의 대응 데이터베이스를 갖고 있는 DNS 서버에 문의해서 수신처의 IP주소를 입수한다.
  • DHCP, ARP, DNS를 사용하여 4개의 주소를 결정한다.
  • 송신처 MAC주소는 NIC를 장치하면 자동적으로 알 수 있고, 송신처 IP 주소는 수동 또는 DHCP로 할당 받아서 알 수 있다. DNS로 수신처 IP 주소를 알 수 있다. ARP로 수신처 주소를 알 수 있고, 데이터 전송이 가능하다.

라우팅

  • MAC주소는 같은 네트워크 내에서의 수신처를 결정하고, 그에비해 IP 주소는 수신처의 컴퓨터를 결정한다.
  • MAC주소로 다음 수신처를 결정하고, IP 주소로 최종 수신처를 결정한다.
  • 라우터가 결정하는 것은 단지 다음에 어디로 가야할지만 결정한다.
  • 다른 네트워크 수신처가 있는 경우에는 라우터로 송신한다. 같은 네트워크에 수신처가 있는 경우에는 수신처에 직접 송신한다.
  • 라우팅 테이블이란 라우터 동작에서 최적의 경로 지도를 나타낸다. 이 지도에는 수신처 네트워크까지의 거리, 다음에 도달하는 라우터, 그 라우터에 연결되어 있는 자신의 인터페이스 등이 기재되어 있다. 최장일치의 룰이란 그 지도에서 다음 수신처를 찾아내는 방식인데, 수신처의 IP주소와 비트가 가장 일치하는 것을 선택한다.
  • 컴퓨터는 다른 네트워크에 데이터를 송신할 때 디폴트 게이트웨이로 ARP를 수행해서 MAC주소를 입수한다.
  • 호스트는 수신처로 MAC 주소를 디폴트 게이트웨이로 수신처 IP주소를 수신처 호스트로 해서 패킷을 보낸다.
  • 수신받은 디폴트 게이트웨이는 라우팅을 하고, 중계 라우터, 송신포트를 결정하여 다음에 수신받을 상대에게 ARP를 수행한다.
  • ARP에 의해 입수한 MAC 주소를 수신처 MAC 주소로, 자기자신의 MAC 주소를 송신처 MAC주소로 갱신하여 송신한다. 존나 어렵네
  • 동적 라우팅이란 라우터가 자동으로 정보를 서로 교환해서 경로를 알아내는 방법, 단점은 라우터끼리 정보를 교환한다는 것은 데이터를 서로 주고받는 것을 의미한다. 그만큼 회선 전송을 압박한다는 뜻이다. 데이터 전송에 사용되는 분량이 줄어든다.
  • 라우팅 프로토콜의 역할은 정보교환을 언제 할지, 어떻게 할지, 누구에게 전송할지, 어떤 정보를 전송할지를 결정한다.
  • 라우팅을 하는데 최적의 경로를 매트릭이라고 한다.
  • RIP동작

    1. 라우팅 업데이트를 교환하고 모르는 경로 정보를 입수한다.
    2. 알고 있는 경로의 정보를 입수한 경우 매트릭으로 판단한다.
  • ICMP란 인터넷 제어 메시지 프로토콜이다. 에러를 보고하는 프로토콜이다. ICMP에는 Query 메시지와 Error메시지가 있다. 쿼리는 상태를 조사하기 위한 메시지고, 에러는 그냥 에러를 통지하기 위한 메시지다.
  • TTL은 IP 데이터그램의 TTL은 라우터를 경유할 때마다 1만큼씩 줄어들고, 0이되면 그 데이터그램은 파기된다. 수신처에 도달하지 못하면 계속 순환되기 때문에 방해만된다. 그래서 일정한 시간이 경과되면 파기한다.
  • traceroute란 수신처에 도달하기까지 경유하는 라우터를 가르쳐 주는 것이다. TTL이 끝나서 데이터그램이 파기되면 파기된 라우터는 Time Exceeded를 송신한다. 이것을 표로 만들어서 어느 경로를 거쳐 갔는지 알수 있다.

커넥션과 포트 번호

  • 4계층의 역할인 흐름 제어란 신뢰성이 높은 통신을 위해서 에러를 복구하고 통신상태를 확인하는 것이다. 데이터가 도달했을 때, 대기장소에 데이터가 넘치는 것을 방지한다. 데이터를 일시적으로 모아두고 준비되는대로 처리한다. 송신 속도나 간격이 빠른경우 데이터가 많이 쌓이면 파기해버린다. 이것을 방지하기 위해 수신측은 확인응답 때 모아둘 수 있는 데이터 양을 송신처에 전송해서 송신샹을 가감하거나 일시적으로 중지하게 한다.
  • 포트번호는 어느 어플리케이션이 송신한 데이터인지 어느 어플리케이션이 수신한 데이터인지 결정하기 위해 부여되는 번호다.
  • 커넥션이란 TCP에서 애플리케이션 간의 데이터 송수신을 하는거다. 이 애플리케이션 간의 송수신을 하는 데이터의 길을 커넥션이라고 한다.
  • 데이터를 전송하기 전에 미리 확인을 주고받아 둔다. 그렇게 상대방에게 확실하게 전달한 것을 확인한다. 가상의 통신로를 만들어 내는 것을 커넥션 확립이라고 한다.
  • 3웨이 핸드쉐이크란 커넥션이 확립에서 3번의 데이터 송수신으로 쌍방향의 통신로를 확립한다.
  • MSS 사이즈로 데이터를 분할해 그 선두 번호를 시퀸스 번호라고 한다.
  • 시퀸스 번호는 보내는 데이터의 앞 부분에 있는 옥텟 번호이고, 확인응답 번호는 다음에 받고 싶은 데이터의 선두 옥텟 번호다. 확인응답 번호로 다음에 받을 예정의 데이터 번호까지 전달한다. 수신했어요가 아니라. 다음에 몇 번부터 데이터를 주세요 라고 응답이 온다. 그래서 수신측이 어느 데이터까지 받았는지를 알 수 있다. RTT라는 값으로 지금까지 보낸 데이터에 대해 확인응답이 돌아오기까지 걸린 시간을 계산하고, 확인 응답에 따라 재전송을 수행하여, 에러를 복구한다.
  • 복수의 세그먼트전송 -> 확인응답이라는 형태로 바꾸면 비교적 시간 효율이 좋아진다. 연속해서 세그먼트를 보냄으로써 효율 좋은 전송을 수행한다.
  • 정확 확실하게 또 효율적으로 보내기 위해 흐름제어중 하나인 윈도우 제어한다. 일시적으로 수신한 데이터를 일시적으로 보관해 두기 위한 버퍼가 있다. 버퍼 사이즈를 전함으로써 송신할 수 있는 데이터 양을 알려준다.
  • 웰 노운 포트란 자주 사용하는 서버 애플리케이션은 사전에 정해진 번호를 사용함으로써 서비스를 제공할 수 있는데 이 번호를 웰 노운 포트라고 한다.
  • UDP은 확인응답과 흐름제어를 하지 않는다. 그래서 고속이다.
  • UDP에서 브로드캐스는 어떻게 가능한가? 각 네트워크에 브로드캐스트 주수가 있는데 여기서 브로드캐스트를 한다.
  • 글로벌 IP 문제는 각 네트워크 내에 있는 IP를 새로 할당하고 할당한 사설 IP 주소를 글로벌 IP주소로 변환하는 식으로 문제를 해결했다.
  • 그래도 부족한 점은 NAPT로 하나의 글로벌 IP 주소로 복수의 컴퓨터를 가능하게 한다. IP 주소 뿐만 아니라 포트 번호도 변환해서 복수의 컴퓨터 접속을 가능하게 한다.
  • 정적 NAPT가 필요한 이유는 NAPT 테이블에 저장되어 있지 않은 것은 LAN 내부에 들어오지 못한다. 그래서 NAPT 테이블에 미리 변환을 저장시켜 준다 물론 여기서는 수동으로 변환을 입력해두는 것이다. 이것을 정적 NAPT라고 한다.
  • 5계층은 애플리케이션 간의 의논의 관리를 한다.
  • 6계층은 데이터의 형식을 변환해서 하드웨어랑 OS에 따른 차이를 없앤 데이터 교환을 가능하게 한다.
  • 7계층은 애플리케이션 목적에 따라 네트워크 서비스를 제공하는 계층이다. 각각의 목적에 따른 프로토콜이 준비되어 있다.