{"action":"created","comment":{"url":"https://api.github.com/repos/inductor/http3-explained/pulls/comments/237120816","pull_request_review_id":179335914,"id":237120816,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNzEyMDgxNg==","diff_hunk":"@@ -1,58 +1,57 @@\n-# Criticism\n+# よくある疑問点\n \n-## UDP will never work\n+## UDPは多くの企業や組織で動くものではない\n+多くの企業、運用者、組織は、昨今においてほとんどが攻撃に悪用されるという理由から、\n+ポート53番（DNSに使われる）を使ったUDPのトラフィックをブロックするか、あるいは\n+利用制限をかけています。\n+特に、既に存在するUDPを使ったプロトコルのいくつかや主要なサーバー実装は攻撃に\n+悪用されがちだからです。なぜなら、攻撃者がDNSを利用し、ターゲットに対して大規模な\n+外部トラフィックを生み出すことが可能であるためです。そのために、既存のUDPプロトコルや\n+UDPで頻繁に用いられるサーバー上の実装はDNSアンプ攻撃に対して脆弱です。\n \n-A lot of enterprises, operators and organizations block or rate-limit UDP\n-traffic outside of port 53 (used for DNS) since it has in recent days mostly\n-been abused for attacks. In particular, some of the existing UDP protocols and\n-popular server implementations for them have been vulnerable for amplification\n-attacks where one attacker can make a huge amount of outgoing traffic to\n-target innocent victims.\n+これに対して、QUICではアンプ攻撃に対して軽減する方法が備わっています。サーバーから受け取る\n+最初のパケットは最低でも1,200バイトを要求するとともに、クライアントレスポンスのパケットを\n+受け取っていない場合では、クライアントサーバーは3回以上のそれをレスポンスを送ってはならない、\n+とプロトコル上で明記されてしています。\n \n-QUIC has built-in mitigation against amplification attacks by requiring that the\n-initial packet must be at least 1200 bytes and by restriction in the protocol\n-that says that a server MUST NOT send more than three times that in response\n-without receiving a packet from the client in response.\n+## UDPはカーネル内で遅い\n \n-## UDP is slow in kernels\n+UDPがカーネル内で遅い点は正しいのように思われます、少なくとも2018年では。ただし、\n+この関して明確な理由を主張することができません。なぜなら、カーネルでの遅さは\n+どのように発生しているのか、どれだけUDPの転送パフォーマンスによる遅さであるかは、\n+開発者にとってはここ数年間はあまり興味がないからです。\n \n-This seems to be the truth, at least today in 2018. We can of course not tell\n-how this will develop and how much of this is simply the result of UDP\n-transfer performance not having been in developers' focus very much for many\n-years.\n+そのために、ほとんどのクライアントでは、この「遅さ」は気づくことはないといえます。\n \n-For most clients, this \"slowness\" is probably never even noticeable.\n+## QUICはCPU使用量が高すぎる\n \n-## QUIC takes too much CPU\n+先述の「UDPは遅い」と同様であるが、CPU使用量が高すぎる点に関してもあまり当てはまりません。\n+なぜならTCPとTLSを利用する際にはハードウェアレベルでのアシストがあるまでに進化し、熟成しています。\n \n-Similar to the \"UDP is slow\" remark above, this is partly because the TCP and\n-TLS usage of the world has had a longer time to mature, improve and get\n-hardware assistance.\n+もちろん、時間を経るごとに、こういった改善が見込めます。問題は利用者がどれだけ\n+余剰なCPU使用の増加を気にしなければならないかです。\n \n-There are reasons to expect this to improve over time. The question is by how\n-much and how much this extra CPU usage will hurt deployers.\n+## これはGoogleの規格でしょ？\n \n-## This is just Google\n+これはGoogleの規格でないです。Googleはインターネット規模でUDPを用いたQUIC同様の規格が","path":"ja/criticism.md","position":61,"original_position":61,"commit_id":"9b8fd7add75a8bb294f8bb1d002f783cb39077d0","original_commit_id":"9b8fd7add75a8bb294f8bb1d002f783cb39077d0","user":{"login":"inductor","id":20236173,"node_id":"MDQ6VXNlcjIwMjM2MTcz","avatar_url":"https://avatars0.githubusercontent.com/u/20236173?v=4","gravatar_id":"","url":"https://api.github.com/users/inductor","html_url":"https://github.com/inductor","followers_url":"https://api.github.com/users/inductor/followers","following_url":"https://api.github.com/users/inductor/following{/other_user}","gists_url":"https://api.github.com/users/inductor/gists{/gist_id}","starred_url":"https://api.github.com/users/inductor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inductor/subscriptions","organizations_url":"https://api.github.com/users/inductor/orgs","repos_url":"https://api.github.com/users/inductor/repos","events_url":"https://api.github.com/users/inductor/events{/privacy}","received_events_url":"https://api.github.com/users/inductor/received_events","type":"User","site_admin":false},"body":"```suggestion\r\nこれはGoogleの規格ではないです。Googleはインターネット規模でUDPを用いたQUIC同様の規格が\r\n```","created_at":"2018-11-28T15:05:28Z","updated_at":"2018-11-28T15:05:39Z","html_url":"https://github.com/inductor/http3-explained/pull/2#discussion_r237120816","pull_request_url":"https://api.github.com/repos/inductor/http3-explained/pulls/2","author_association":"OWNER","_links":{"self":{"href":"https://api.github.com/repos/inductor/http3-explained/pulls/comments/237120816"},"html":{"href":"https://github.com/inductor/http3-explained/pull/2#discussion_r237120816"},"pull_request":{"href":"https://api.github.com/repos/inductor/http3-explained/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/inductor/http3-explained/pulls/2","id":234172588,"node_id":"MDExOlB1bGxSZXF1ZXN0MjM0MTcyNTg4","html_url":"https://github.com/inductor/http3-explained/pull/2","diff_url":"https://github.com/inductor/http3-explained/pull/2.diff","patch_url":"https://github.com/inductor/http3-explained/pull/2.patch","issue_url":"https://api.github.com/repos/inductor/http3-explained/issues/2","number":2,"state":"open","locked":false,"title":"A Translation of `Common criticism` Page","user":{"login":"kousukekikuchi1984","id":8690845,"node_id":"MDQ6VXNlcjg2OTA4NDU=","avatar_url":"https://avatars3.githubusercontent.com/u/8690845?v=4","gravatar_id":"","url":"https://api.github.com/users/kousukekikuchi1984","html_url":"https://github.com/kousukekikuchi1984","followers_url":"https://api.github.com/users/kousukekikuchi1984/followers","following_url":"https://api.github.com/users/kousukekikuchi1984/following{/other_user}","gists_url":"https://api.github.com/users/kousukekikuchi1984/gists{/gist_id}","starred_url":"https://api.github.com/users/kousukekikuchi1984/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kousukekikuchi1984/subscriptions","organizations_url":"https://api.github.com/users/kousukekikuchi1984/orgs","repos_url":"https://api.github.com/users/kousukekikuchi1984/repos","events_url":"https://api.github.com/users/kousukekikuchi1984/events{/privacy}","received_events_url":"https://api.github.com/users/kousukekikuchi1984/received_events","type":"User","site_admin":false},"body":"Since I have little knowledge on protocol, Please verify the translation from the technical aspect.\r\nThank you in advance.\r\n\r\nref: https://github.com/mohikanz/http3-explained/issues/2\r\n","created_at":"2018-11-28T07:22:29Z","updated_at":"2018-11-28T15:05:38Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ec48204d31a0fd68559e150bd1d912dde7d37d7d","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/inductor/http3-explained/pulls/2/commits","review_comments_url":"https://api.github.com/repos/inductor/http3-explained/pulls/2/comments","review_comment_url":"https://api.github.com/repos/inductor/http3-explained/pulls/comments{/number}","comments_url":"https://api.github.com/repos/inductor/http3-explained/issues/2/comments","statuses_url":"https://api.github.com/repos/inductor/http3-explained/statuses/9b8fd7add75a8bb294f8bb1d002f783cb39077d0","head":{"label":"kousukekikuchi1984:add/criticism","ref":"add/criticism","sha":"9b8fd7add75a8bb294f8bb1d002f783cb39077d0","user":{"login":"kousukekikuchi1984","id":8690845,"node_id":"MDQ6VXNlcjg2OTA4NDU=","avatar_url":"https://avatars3.githubusercontent.com/u/8690845?v=4","gravatar_id":"","url":"https://api.github.com/users/kousukekikuchi1984","html_url":"https://github.com/kousukekikuchi1984","followers_url":"https://api.github.com/users/kousukekikuchi1984/followers","following_url":"https://api.github.com/users/kousukekikuchi1984/following{/other_user}","gists_url":"https://api.github.com/users/kousukekikuchi1984/gists{/gist_id}","starred_url":"https://api.github.com/users/kousukekikuchi1984/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kousukekikuchi1984/subscriptions","organizations_url":"https://api.github.com/users/kousukekikuchi1984/orgs","repos_url":"https://api.github.com/users/kousukekikuchi1984/repos","events_url":"https://api.github.com/users/kousukekikuchi1984/events{/privacy}","received_events_url":"https://api.github.com/users/kousukekikuchi1984/received_events","type":"User","site_admin":false},"repo":{"id":159437779,"node_id":"MDEwOlJlcG9zaXRvcnkxNTk0Mzc3Nzk=","name":"http3-explained","full_name":"kousukekikuchi1984/http3-explained","private":false,"owner":{"login":"kousukekikuchi1984","id":8690845,"node_id":"MDQ6VXNlcjg2OTA4NDU=","avatar_url":"https://avatars3.githubusercontent.com/u/8690845?v=4","gravatar_id":"","url":"https://api.github.com/users/kousukekikuchi1984","html_url":"https://github.com/kousukekikuchi1984","followers_url":"https://api.github.com/users/kousukekikuchi1984/followers","following_url":"https://api.github.com/users/kousukekikuchi1984/following{/other_user}","gists_url":"https://api.github.com/users/kousukekikuchi1984/gists{/gist_id}","starred_url":"https://api.github.com/users/kousukekikuchi1984/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kousukekikuchi1984/subscriptions","organizations_url":"https://api.github.com/users/kousukekikuchi1984/orgs","repos_url":"https://api.github.com/users/kousukekikuchi1984/repos","events_url":"https://api.github.com/users/kousukekikuchi1984/events{/privacy}","received_events_url":"https://api.github.com/users/kousukekikuchi1984/received_events","type":"User","site_admin":false},"html_url":"https://github.com/kousukekikuchi1984/http3-explained","description":"A document describing the HTTP/3 and QUIC protocols","fork":true,"url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained","forks_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/forks","keys_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/teams","hooks_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/hooks","issue_events_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/issues/events{/number}","events_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/events","assignees_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/assignees{/user}","branches_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/branches{/branch}","tags_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/tags","blobs_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/git/refs{/sha}","trees_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/statuses/{sha}","languages_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/languages","stargazers_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/stargazers","contributors_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/contributors","subscribers_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/subscribers","subscription_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/subscription","commits_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/commits{/sha}","git_commits_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/git/commits{/sha}","comments_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/comments{/number}","issue_comment_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/issues/comments{/number}","contents_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/contents/{+path}","compare_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/merges","archive_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/downloads","issues_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/issues{/number}","pulls_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/pulls{/number}","milestones_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/milestones{/number}","notifications_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/labels{/name}","releases_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/releases{/id}","deployments_url":"https://api.github.com/repos/kousukekikuchi1984/http3-explained/deployments","created_at":"2018-11-28T03:25:08Z","updated_at":"2018-11-28T03:25:10Z","pushed_at":"2018-11-28T14:33:35Z","git_url":"git://github.com/kousukekikuchi1984/http3-explained.git","ssh_url":"git@github.com:kousukekikuchi1984/http3-explained.git","clone_url":"https://github.com/kousukekikuchi1984/http3-explained.git","svn_url":"https://github.com/kousukekikuchi1984/http3-explained","homepage":"https://daniel.haxx.se/http3-explained/","size":1271,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"cc-by-4.0","name":"Creative Commons Attribution 4.0 International","spdx_id":"CC-BY-4.0","url":"https://api.github.com/licenses/cc-by-4.0","node_id":"MDc6TGljZW5zZTI1"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"inductor:add/japanese","ref":"add/japanese","sha":"e1cfd32c021c7208c90bddc97c18d16fc17bf37d","user":{"login":"inductor","id":20236173,"node_id":"MDQ6VXNlcjIwMjM2MTcz","avatar_url":"https://avatars0.githubusercontent.com/u/20236173?v=4","gravatar_id":"","url":"https://api.github.com/users/inductor","html_url":"https://github.com/inductor","followers_url":"https://api.github.com/users/inductor/followers","following_url":"https://api.github.com/users/inductor/following{/other_user}","gists_url":"https://api.github.com/users/inductor/gists{/gist_id}","starred_url":"https://api.github.com/users/inductor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inductor/subscriptions","organizations_url":"https://api.github.com/users/inductor/orgs","repos_url":"https://api.github.com/users/inductor/repos","events_url":"https://api.github.com/users/inductor/events{/privacy}","received_events_url":"https://api.github.com/users/inductor/received_events","type":"User","site_admin":false},"repo":{"id":159429561,"node_id":"MDEwOlJlcG9zaXRvcnkxNTk0Mjk1NjE=","name":"http3-explained","full_name":"inductor/http3-explained","private":false,"owner":{"login":"inductor","id":20236173,"node_id":"MDQ6VXNlcjIwMjM2MTcz","avatar_url":"https://avatars0.githubusercontent.com/u/20236173?v=4","gravatar_id":"","url":"https://api.github.com/users/inductor","html_url":"https://github.com/inductor","followers_url":"https://api.github.com/users/inductor/followers","following_url":"https://api.github.com/users/inductor/following{/other_user}","gists_url":"https://api.github.com/users/inductor/gists{/gist_id}","starred_url":"https://api.github.com/users/inductor/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/inductor/subscriptions","organizations_url":"https://api.github.com/users/inductor/orgs","repos_url":"https://api.github.com/users/inductor/repos","events_url":"https://api.github.com/users/inductor/events{/privacy}","received_events_url":"https://api.github.com/users/inductor/received_events","type":"User","site_admin":false},"html_url":"https://github.com/inductor/http3-explained","description":"A document describing the HTTP/3 and QUIC protocols","fork":true,"url":"https://api.github.com/repos/inductor/http3-explained","forks_url":"https://api.github.com/repos/inductor/http3-explained/forks","keys_url":"https://api.github.com/repos/inductor/http3-explained/keys{/key_id}","collaborators_url":"https://api.github.com/repos/inductor/http3-explained/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/inductor/http3-explained/teams","hooks_url":"https://api.github.com/repos/inductor/http3-explained/hooks","issue_events_url":"https://api.github.com/repos/inductor/http3-explained/issues/events{/number}","events_url":"https://api.github.com/repos/inductor/http3-explained/events","assignees_url":"https://api.github.com/repos/inductor/http3-explained/assignees{/user}","branches_url":"https://api.github.com/repos/inductor/http3-explained/branches{/branch}","tags_url":"https://api.github.com/repos/inductor/http3-explained/tags","blobs_url":"https://api.github.com/repos/inductor/http3-explained/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/inductor/http3-explained/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/inductor/http3-explained/git/refs{/sha}","trees_url":"https://api.github.com/repos/inductor/http3-explained/git/trees{/sha}","statuses_url":"https://api.github.com/repos/inductor/http3-explained/statuses/{sha}","languages_url":"https://api.github.com/repos/inductor/http3-explained/languages","stargazers_url":"https://api.github.com/repos/inductor/http3-explained/stargazers","contributors_url":"https://api.github.com/repos/inductor/http3-explained/contributors","subscribers_url":"https://api.github.com/repos/inductor/http3-explained/subscribers","subscription_url":"https://api.github.com/repos/inductor/http3-explained/subscription","commits_url":"https://api.github.com/repos/inductor/http3-explained/commits{/sha}","git_commits_url":"https://api.github.com/repos/inductor/http3-explained/git/commits{/sha}","comments_url":"https://api.github.com/repos/inductor/http3-explained/comments{/number}","issue_comment_url":"https://api.github.com/repos/inductor/http3-explained/issues/comments{/number}","contents_url":"https://api.github.com/repos/inductor/http3-explained/contents/{+path}","compare_url":"https://api.github.com/repos/inductor/http3-explained/compare/{base}...{head}","merges_url":"https://api.github.com/repos/inductor/http3-explained/merges","archive_url":"https://api.github.com/repos/inductor/http3-explained/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/inductor/http3-explained/downloads","issues_url":"https://api.github.com/repos/inductor/http3-explained/issues{/number}","pulls_url":"https://api.github.com/repos/inductor/http3-explained/pulls{/number}","milestones_url":"https://api.github.com/repos/inductor/http3-explained/milestones{/number}","notifications_url":"https://api.github.com/repos/inductor/http3-explained/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/inductor/http3-explained/labels{/name}","releases_url":"https://api.github.com/repos/inductor/http3-explained/releases{/id}","deployments_url":"https://api.github.com/repos/inductor/http3-explained/deployments","created_at":"2018-11-28T02:13:34Z","updated_at":"2018-11-28T09:47:48Z","pushed_at":"2018-11-28T14:33:37Z","git_url":"git://github.com/inductor/http3-explained.git","ssh_url":"git@github.com:inductor/http3-explained.git","clone_url":"https://github.com/inductor/http3-explained.git","svn_url":"https://github.com/inductor/http3-explained","homepage":"https://daniel.haxx.se/http3-explained/","size":1268,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":12,"mirror_url":null,"archived":false,"open_issues_count":3,"license":{"key":"cc-by-4.0","name":"Creative Commons Attribution 4.0 International","spdx_id":"CC-BY-4.0","url":"https://api.github.com/licenses/cc-by-4.0","node_id":"MDc6TGljZW5zZTI1"},"forks":12,"open_issues":3,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/inductor/http3-explained/pulls/2"},"html":{"href":"https://github.com/inductor/http3-explained/pull/2"},"issue":{"href":"https://api.github.com/repos/inductor/http3-explained/issues/2"},"comments":{"href":"https://api.github.com/repos/inductor/http3-explained/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/inductor/http3-explained/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/inductor/http3-explained/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/inductor/http3-explained/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/inductor/http3-explained/statuses/9b8fd7add75a8bb294f8bb1d002f783cb39077d0"}},"author_association":"NONE"}}
{"actor":{"display_login":"inductor"}}