ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS 스터디] TCP/IP CH2. 네트워크 서비스와 애플리케이션 계층
    CS📟 2022. 8. 14. 14:14

    *TCP/IP 쉽게, 더 쉽게 책의 스터디를 위한 정리 글입니다. 모든 블로그 글이 마찬가지지만 틀린 정보가 있다면 알려주세요!

    애플리케이션 계층

    • 애플리케이션 계층이란?
      • 웹이나 이메일과 같은 서비스를 제공하는 계층
      • 서비스는 독자적인 프로토콜을 가짐
      • 사용자가 직접 사용하면 체감하는 계층
      • 데이터 전송 관련 계층을 제외한 모든 영역
    • 프로토콜
      • 사용가자 직접 사용하는 프로토콜
        • HTTP, POP, SMTP, IMAP, SMB, AFP, FTP, Telnet, SSH
    • 사용자가 직접 사용하지 않는 프로토콜
      • OS나 다른 어플리케이션 계층의 프로토콜이 간접적으로 사용
      • LAN, 인터넷의 원활한 사용을 위해 이면에서 동작
      • DNS, DHCP, SSL/TLS, NTP, LDAP

    프로토콜

    • HTTP
    • HTTP란? 
      • 클라이언트와 서버 사이에서 웹 페이지 데이터를 주고받음
      • 가장 대표적인 서비스인 www가 HTTP 사용
    • HTTP를 이용하여 웹페이지를 보여주는 방법 
      • 특정 웹페이지를 요청하면 HTML, CSS, JS 등 화면 구성에 필요한 파일 정보와 함께 응답을 보내고 브라우저가 해석하며 화면을 보여줌
    • HTTP 메시지
      • 통신과정에서 주고받는 정보 
      • 요청과 응답으로 구분
      • 요청 
        • URL을 사용 : schema://host.domain/diretory/file 형식 
        • 요청 헤더에 url에 있는 정보들을 이 들어가서 서버에 있는 해당 파일을 요청한다
      • 응답
        • 첫 번째에 상태 코드가 들어옴
        • 헤더에 파일 갱신 날짜, 크기 등의 정보가 들어옴
        • 바디에 HTML이 들어옴
      • GET과 POST
        • GET
          • 입력 폼의 내용이 요청행에 포함되어서 주소창에서 정보가 보임
          • 이전 페이지를 누르면 한 단계 앞으로 이동 가능
        • POST는 
          • 상대적으로 많은 데이터 전송 가능
          • 정보를 저장하거나 변경할 때 이용
          • 입력 폼의 내용이 보이지 않음 하지만 해석해서 내용을 노출할 수 있기 때문에 안전하지는 않음
    • POP, SMTP, IMAP
      • 메일을 송수신하고 보관
      • SMTP 
        • stateful 한 프로토콜 (정송 종료 요청이 있어야 종료)
        • 메일 서버로 메일을 보낼 때 사용
        • 발신자의 메일 서버에서 수신자의 메일서버로 중계할 때도 사용
      • POP
        • 메일 서버에 저장된 메일을 확인할 때 사용
        • 수신 메일 건수, 용량 확인, 메일 삭제에도 사용
        • 현재는 3 버전을 사용 중이고 하위 버전가 차이가 커서 혼용이 안됨
      • SMTP auth
        • SMTP는 인증체계가 없어서 스팸으로 악용
        • SMTP auth는 인증 기능이 추가된 프로토콜
      • IMAP
        • POP는 기본적으로 메일을 수신하면 삭제함
        • IMAP는 수신 메일도 보관
        • 저장공간이 부족한 모바일에서 이용
    • SMB, AFP
      • LAN안에서 파일 공유
      • P2P에서 사용됨
      • SMB : 윈도우
      • AFP: MAC
    • FTP
      • 서버를 통해 파일 주고받음
      • 인터넷에 연결된 서버에 파일을 전송할 때 주로 사용
      • 웹 페이지를 전송할때 주로 사용
      • FTP 서버 프로그램과 웹 서버 프로그램이 함께 구동 중이면 FTP로 HTML을 전송하고 HTTP로 서비스 가능
      • 데이터 커넥션
        • FTP 명령을 보내기 위한 접속
      • 컨트롤 커넥션
        • 파일 데이터를 주고받기 위한 접속
      • 방화벽이나 가정용 초고속 인터넷 라우터를 사용하는 경우 통신이 차단되는 경우가 많음
      • 패시브 모드를 사용해서 서버에서 클라이언트로 데이터 커넥션을 만들어주면 해결 가능
    • Telnet, SSH
      • 원격에서 서버 제어
      • CLI
      • 서버가 멀리 있는 경우가 많아 서버 관리에 사용
    • RDP, RFB
      • 컴퓨터 원격 제어
      • GUI
      • 윈도우에 내장된 원격 데스크톱은 RDP 사용
      • VNC는 RFB 사용
      • 마우스나 키보드의 제어 정보를 보내고 화면 이미지를 받기 때문에 압축기술도 함께 제공
    • DNS
      • 도메인명과 IP 주소의 정보를 서로 변환
    • DHCP
      • LAN내의 컴퓨터에게 IP 주소 할당
    • SSL/TLS
      • 통신 데이터를 암호화
    • NTP
      • 네트워크에 연결된 장비들의 시스템 시간 동기화
    • LDAP
      • 네트워크에 연결된 자원의 통합 관리에 필요한 디렉터리 서비스 제공

     

    쿠키

    • HTTP는 무상태 프로토콜이라 응답이 오면 통신이 끊어짐
    • 여러 흐름에서 같은 사용자의 요청이라는 걸 알기 위해서 쿠키를 사용

    쿠키의 사용방법

    • 응답에 set-Cookie가 있는지 확인하고 있으면 로컬에 쿠키 형태로  저장

    쿠키의 보안

    • 웹 브라우저에서 자체 구현
      • 쿠키가 생성된 웹 서버와 동일한 도메인을 사용하는 웹사이트에만 쿠키가 전송
      • 저장된 쿠키들이 있다면 유효기간을 확인 후 지나면 폐기
    • 쿠키 보안 취약점
      • XSS
      • 스니핑
      • 공용 PC에서 유출
      • HTML5 웹 스토리지 정보 유출
    • 보안에 문제가 생길만한 정보들은 클라이언트 PC의 쿠키에 저장하면 안 됨
    • 각종 정보는 서버에 저장이 원칙
    • 세션 ID정도만 저장

     

    P2P (Peer to Peer)

    • 연결된 컴퓨터들이 서로 서버와 클라이언트의 역할을 하며 파일공유
    • 관리하는 서버가 없기 때문에 연결되면 자신이 연결되었다는 것을 통보하여 공유 가능한 컴퓨터들을 식별
    • 윈도우에서는 SMB를 사용하고 맥은 AFP를 사용
    • 최근에는 다른 OS의 프로토콜도 지원할 수 있게 되어 설정만 하면 공유 가능
    • 음성이나 동영상을 주고받을 때 많이 사용

    VoiceoverIP & 영상 스트리밍

    • 음성이나 영상은 텍스트에 비해 용량이 커서 UDP를 사용
    • 전송 시에는 데이터를 압축하되 수신된 정보를 바로 재생할 수 있는 스트리밍 기술 이용
    • 서버에서 찾은 후 P2P를 사용하는 하이브리드 방식도 사용
    • 간혹 통신이 거부되는 상황이 있어서 HTTP메시지 안에 넣어서 전송하기도 한다
    • UDP
      • 일부가 누락되어도 신경 쓰지 않음

     

    크롬 개발자 도구로 HTTP 메시지를 확인 가능

     

    'CS📟' 카테고리의 다른 글

    [TCP/IP] 인터넷 계층  (0) 2022.08.28
    [TCP/IP] 트랜스포트 계층  (0) 2022.08.20
    상태코드의 종류  (0) 2022.08.14
    [TCP/IP] CH1. 컴퓨터 네트워크와 TCP/IP  (0) 2022.08.04
    객체 지향 내용 정리  (0) 2022.03.16
Designed by Tistory.