Skip to content

Commit

Permalink
포트번호 설명 추가
Browse files Browse the repository at this point in the history
  • Loading branch information
rlaisqls committed Jun 4, 2024
1 parent 3d695d0 commit e698672
Showing 1 changed file with 10 additions and 4 deletions.
14 changes: 10 additions & 4 deletions src/content/docs/start/01-internet.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,13 @@ HTTP는 하이퍼텍스트 전송 프로토콜(HTTP)의 약자로, 웹에서 가

HTTP는 필요한 정보를 요청할 때 URL, 헤더, 바디 등의 정보를 담아 보내도록 합니다. 개발을 할 때도 각 애플리케이션이 HTTP 통신을 할 때 각 부분에 어떤 정보를 넣고 반환해야 할지 고려하게 됩니다.

그 중 가장 익숙한 개념은 URL일 겁니다. URL은 어떤 자원을 원하는지를 나타내는 주소입니다. URL의 첫 파트는 브라우저가 프로토콜을 사용하는지를 나타냅니다. 브라우저 주소창에 보이는 `https://`로 시작하는 주소는 HTTPS 프로토콜을 사용하고 있다는 것을 의미합니다.
그 중 가장 익숙한 개념은 URL일 겁니다. URL은 어떤 자원을 원하는지를 나타내는 주소입니다. URL의 첫 파트는 브라우저가 어떤 프로토콜을 사용하는지를 나타냅니다. 브라우저 주소창에 보이는 `https://`로 시작하는 주소는 HTTPS 프로토콜을 사용하고 있다는 것을 의미합니다.

`https://` 뒤에는 목적지 주소와 하위 경로 정보가 명시됩니다. 목적지 주소에는 `{IP 주소}:{포트 번호}` 형식의 정보가 들어갈 수 있습니다. IP와 포트에 대해선 TCP/IP 부분에서 자세히 설명합니다. 주소 대신 `google.com`과 같이 주소를 나타내는 도메인(DNS)을 사용하는 경우도 있습니다.

```
https://{목적지 주소}/{하위 경로}
https://120.0.0.1:4123/dsm-freshman-guide
https://dsmhs.github.com/dsm-freshman-guide
```

Expand All @@ -83,16 +87,18 @@ IP 프로토콜에서 하는 작업을 간단하게 말하면 편지 봉투에

#### TCP

IP가 단순히 주소로 편지를 보내는 것 까지만 정의한다면 TCP는 편지가 확실하게 순서대로 전달되는지를 보장하고 통제합니다. IP만 사용한다면 상대방이 편지를 받을 수 없거나 다른 위치로 이사간 경우 편지가 제대로 도착하지 못하고 유실될 수 있습니다.
IP가 단순히 주소로 편지를 보내는 것 까지만 정의한다면 TCP는 편지가 확실하게 순서대로 전달되는지를 보장하고 통제합니다. IP만 사용한다면 상대방이 편지를 받을 수 없거나 다른 주소로 이사간 경우 편지가 제대로 도착하지 못하고 유실될 수 있습니다. 그리고 주소만 지정하기 때문에 그 집에 사는 사람 중 누구에게 온 편지인지 구분할 수 없습니다.

하지만 TCP는 상대방이 편지를 받을 수 있는 상황인지를 확인한 다음에 정보를 보내도록 합니다. TCP에서는 상대방과 1:1로 연결되어있다는 것이 확실해야 정보를 보냅니다. 통신 가능 여부를 확인하기 위해 3 Way-Handshake라는 과정을 거칩니다.
TCP는 편지가 중간에 사라지는 문제를 해결하기 위해, 상대방이 편지를 받을 수 있는 상황인지를 확인한 다음 정보를 보내도록 합니다. TCP에서는 상대방과 1:1로 연결되어있다는 것이 확실해야 정보를 보냅니다. 통신 가능 여부를 확인하기 위해 3 Way-Handshake라는 과정을 거칩니다.

> **3 Way-Handshake 과정**<br/>
> 1. 상대에게 통신을 하고 싶다는 메시지를 보낸다. (SYN)
> 2. 상대는 그 메시지에 대한 응답 + 나도 통신 준비가 되었다는 메시지를 보낸다. (SYN-ACK)
> 3. 2번에서 받은 메시지에 응답을 보낸다. (ACK)
이 외에도 여러 편지를 한 번에 보내는 경우에는 편지를 순서대로 받을 수 있도록 통제하는 등의 작업으로 정보가 안전하게 도착했다는 것을 확인하고 보장합니다. 꼭 확실하게 도착하지 않아도 상황이라면 [UDP](https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9A%A9%EC%9E%90_%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B7%B8%EB%9E%A8_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C#:~:text=UDP%EB%8A%94%20%EC%9C%A0%EB%8B%88%EB%B2%84%EC%84%A4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B7%B8%EB%9E%A8,%ED%86%B5%EB%B3%B4%20%EC%97%86%EC%9D%B4%20%EB%88%84%EB%9D%BD%EC%8B%9C%ED%82%A4%EA%B8%B0%EB%8F%84%20%ED%95%9C%EB%8B%A4.)라는 프로토콜을 사용할 수도 있습니다.
그리고 해당 주소에 사는 사람 중 누구에게 가는 편지인지를 구분하기 위해, 즉 도착지 컴퓨터의 어떤 프로그램이 사용할 정보인지를 구분하기 위해 포트(Port)라는 정보를 추가로 주고받습니다. TCP를 통해 패킷을 보낼 때는 `IP주소:포트번호`처럼 주소를 지정한다고 할 수 있습니다. (예: `120.0.0.1:4123`)

이 외에도 여러 편지를 한 번에 보내는 경우에는 편지를 순서대로 받을 수 있도록 통제하는 등의 작업으로 정보가 안전하게 도착했다는 것을 확인하고 보장합니다. 꼭 확실하게 도착하지 않아도 상황이라면 [UDP](https://ko.wikipedia.org/wiki/%EC%82%AC%EC%9A%A9%EC%9E%90_%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B7%B8%EB%9E%A8_%ED%94%84%EB%A1%9C%ED%86%A0%EC%BD%9C#:~:text=UDP%EB%8A%94%20%EC%9C%A0%EB%8B%88%EB%B2%84%EC%84%A4%20%EB%8D%B0%EC%9D%B4%ED%84%B0%EA%B7%B8%EB%9E%A8,%ED%86%B5%EB%B3%B4%20%EC%97%86%EC%9D%B4%20%EB%88%84%EB%9D%BD%EC%8B%9C%ED%82%A4%EA%B8%B0%EB%8F%84%20%ED%95%9C%EB%8B%A4.)라는 프로토콜을 사용할 수도 있습니다.

---

Expand Down

0 comments on commit e698672

Please sign in to comment.