본문 바로가기
컴퓨터 네트워크 정리

TCP/IP 5계층 - 응용계층

by recoraddic 2024. 11. 23.

전 페이지에서 공부한 OSI-7계층보다는 TCP/IP 5계층이 실제로는 더 많이 사용된다

이제부터 계층 하나마다 공부해서 정리 하도록 하겠다

그러기 전에 

1. TCP/IP ?? 

TCP와 IP는 인터넷 통신의 핵심 프로토콜이다

TCP

데이터를 신뢰성 있게 전송

3-WAY Handshake을 통해 논리적연결을 해놓고 데이터를 보낸다

IP

데이터를 패킷 단위로 나누고 라우팅을 통해서 목적지까지 전송

 

이렇게 인터넷 통신의 기초를 이루고 있기 때문에 이 프로토콜을 TCP/IP 라 부르는것이다

 

2. 응용계층

응용계층은 네트워크를 응용해서 사용자와 인터페이스 하도록 하는 계층이다.

그러면 네트워크를 어떤 식으로 응용할까?

네크워크의 응용

  • Client - server구조 : 응용을 따로 해주는 컴퓨터를 따로 두는 구조
    • 서버 : 서비스를 제공해주는 장치로 항상 켜져있어서 언제나 원하는 서비스를 받을 수 있다
    • 클라이언트 : 서버에 서비스를 요청
  • P2P 구조 : 클라이어트와 서버 없이 계층이 동등한 위치에서 각자 서버와 클라이언트 역할을 하는것
  • 하이브리드 구조 : Client -server가 필요없으면 p2p구조이고 필요할때만 서버가 관여

프로세스의 통신

이게 필요한 이유는 네트워크 통신은 결국 각자 다른 컴퓨터들의 프로그램 즉 프로세스들이 통신하는것이다

프로세스는 독립된 메모리공간을 가지고 수행되고 있는 프로그램 즉 실행되고 있는 프로그램이다.

프로세스간의 통신이여서 결국 프로세스의 주소를 아는 것도 상당히 중요하다

  • 프로세스의 주소 ( IP 주소 + 포트번호 )
    1. IP주소
      • xxx.xxx.xxx.xxx이 형태로 구성되어있고 , xxx는 0에서 255사이의 정수 값을 가져서 256^4까지 표현
      • 172.30.1.81는 하나의 ip 주소여서 원칙적으로는 하나의 네트워크에서의 위치를 나타낸다 하지만 서브넷이라는 개념을 이용해서 나눠서 사용한다
    2. 포트번호 : 패킷이 누구에게 가는지 찾기 위한 이름표
      • 이렇게 생각하면 쉬울것이다. 네트워크 구름에서 빠져나가는 통로가 포트이다.
      • TCP포트가 2^16 UDP도 2^16개 있고 주로 TCP 포트를 사용한
더보기

IP주소를 나누는 방법 : 서브넷 마스크

IP주소에서 네트워크 부분호스트 부분을 구분한다. 네트워크 부분을 세분화하여 사용한

예를 들어   

 

  • IP 주소: 192.168.1.0
  • 서브넷 마스크: 255.255.255.0
    • 255: 네트워크 부분.
    • 0: 호스트 부분.
 나중에 추가적으로 공부해서 정리하자

프로세스의 통신의 예시 

소켓통신

소켓이랑 네트워크에서 프로세스간의 통신을 위한 통로이다

1.소켓은 연결을 추상화

  • 소켓은 IP 주소와 포트 번호를 내부적으로 관리하여, **"연결된 통로"**를 만들어줍니다.
  • 개발자는 소켓 객체만 사용하여 데이터를 주고받을 수 있습니다.

2. 데이터 송수신 간소화

  • 데이터를 송수신할 때마다 매번 네트워크 주소(IP, 포트)를 명시할 필요 없이, 소켓이 알아서 처리합니다.

3. 프로세스 간 연결 유지

  • 소켓은 클라이언트와 서버 간의 연결 상태를 유지합니다.
  • 예를 들어, 한 번 소켓을 통해 연결이 성립되면, 소켓이 닫히기 전까지 데이터를 여러 번 주고받을 수 있습니다.

 

응용계층 프로토콜

HTTP

HTTP는 웹 브라우저(클라이언트)와 웹 서버 간에 데이터를 주고받기 위한 프로토콜이다.

 

기본적인 동작원리

  • 클라이언트가 URL 요청
    • 사용자가 브라우저에서 URL을 입력하거나, 특정 웹 애플리케이션이 서버에 요청을 보냅니다.
    • 이 요청은 TCP 프로토콜을 기반으로 서버와 연결됩니다.
  • 서버는 항상 대기 중
    • 서버는 소켓을 열어놓고 클라이언트 요청을 기다립니다.
  • 클라이언트가 요청(Request) 전송
    • 클라이언트는 HTTP 요청을 보냅니다. 요청 방식은 주로 다음과 같습니다:
      • GET: 원하는 데이터를 가져온다. 데이터 길이 제한이 있다
      • POST: 데이터를 서버에 게시하는 목적 예를 들면 블로그. 데이터 길이 제한이 없다
  • 서버가 응답(Response) 전송
    • 서버는 요청에 대한 결과를 반환합니다:
      • 200 OK: 요청 성공.
      • 404 Not Found: 요청한 리소스를 찾을 수 없음.
      • 기타 오류 코드.
  • TCP 연결 종료
    • 원칙적으로 응답이 끝나면 TCP 연결을 종료하지만, 이는 옵션이며 유지할 수도 있습니다.

HTTP의 특징

 

  • HTTP Transaction
    • HTTP 통신은 하나의 요청과 하나의 응답으로 구성됩니다.
    • 이 단위를 **트랜잭션(Transaction)**이라고 합니다.
  • Stateless Protocol (무상태 프로토콜)
    • HTTP는 **Stateless(상태를 유지하지 않음)**입니다.
      • 한 번의 요청과 응답이 끝나면, 클라이언트가 누구인지, 이전에 어떤 작업을 했는지에 대한 정보가 없어진다
더보기

URL (웹 상의 리소스의 위치를 나나내는 주소)은 다음과 같은 구조로 구성되어 있다

https://www.example.com:443/path/to/resource?query=search

프로토콜 : https:// -> 리소스에 접근하기 위한 통신 규약

도메인 이름 : www.example.com ->  서버의 주소

포트 번호 : 433 -> 서버와 통신하기 위한 포트 번호. 생략 가능(HTTP 기본값: 80, HTTPS 기본값: 443)

경로 : /path/to/resource -> 서버 내부에서 리소스가 저장된 경로.

 

 

'컴퓨터 네트워크 정리' 카테고리의 다른 글

컴퓨터 네트워크 - 자율주행 관련  (2) 2024.11.23
컴퓨터 네트워크 정리  (1) 2024.11.23