TIL # 11

Donghee Lee·2022년 11월 13일
0

TIL

목록 보기
11/18

오늘 한 일.

프로그래머스 4문제 풀이
네트워크 링킹 계층의 무선 네트워크

새로 배운 것.

  • String의 split(separator: ) or split { $0 == "" }의 리턴 타입은 [SubString]이며, split은 Foundation을 import 하지 않아도 사용이 가능하다.
  • String의 components(separatedBy: "")의 리턴 타입은 [String]이며, Foundation이 필요하다.
  • 무선 네트워크가 유선 네트워크와 다른 점은 같은 호스트를 가져도 특정 호스트는 Carrier Sense를 할 수 없는 상황이 있다(거리에 따른 세기의 감소) 따라서 Collision Detect가 불가능하다!
    그래서 나온 것이 상대방(AP)에게 ACK를 받아 해결하는 CSMA/CA(Collision Avoidance) 방식!
    그런데 이 방식은 CSMA/CD에서 Collision Detect 하는 순간, 전송을 멈추고 Binary Backoff를 바로 수행하는 것과는 다르게, 한 번 보내면 끝까지 프레임을 보내게 된다. 그래서 CSMA/CD보다 낭비되는 자원이 많다.
    그래서 CSMA/CA에서는 RTS-CTS(Ready To Send, Clear To Send)라는 Control Frame을 추가시켜 Collision을 줄인다. 두 프레임 모두 브로드 캐스팅 방식이다. 만약 CSMA/CA에서 데이터 재전송을 7번까지 했는데 ACK를 받지 못했다면 해당 frame은 포기하고, end-to-end 통신인 TCP의 Timer에 의해 TimeOut 되어 재전송하게 된다.

내일 일정.

프로그래머스 알고리즘 4문제 이상 풀기
네트워크 좀 더 딥하게 공부

오늘 느낀 점.

오늘 5문제를 도전했지만 한문제는 실패다.. 캐시 문제였는데 다시 풀어봐야겠다.

profile
Better than Yesterday

0개의 댓글